//****************************************************************************
// ÀÛ ¼º ÀÚ : ±â¼úÁö¿ø¼¿ ±è±â°æ 
// ÀÛ ¼º ÀÏ : 2001-04-09
// ÆÄÀÏ ¼³¸í: Global Library
// ¼ö Á¤ ÀÏ |  ¼ö Á¤ Â÷ ¼ö(U:Update, I:Insert)  |  ¼ö Á¤ ÀÚ
//****************************************************************************

	dim dirRoot, dirDC, dirDW, dirDZ
	dirRoot = "/EXC"
	dirDC = dirRoot + "/DC"
	dirDW = dirRoot + "/DW"
	dirDZ = dirRoot + "/DZ"

	// grid variable	:	Color
	
	const	gGridTitleColor = &HE4E4E4&				'&H00EADED2& '&H00E2E8E8&
	const	gGridTitleTextColor = &H00000000&
	const	gcolGridBackColorBkg = &HEFEFEF&		'&H00D3ECEF&   '&H00F7F7F7&
	const	gGridReadOnlyColor = &H00F3F5F3&
	const	gGridFrozenColor = &H00EEF1F1&
	const	gGridSoKeColor = &H00E9F6F7&
	const	gGridChongKeColor =&H00DCEFF3&
	const	gGridGangJoColor = &H00F8F4EC&
	const	gGridKuBunColor = &H00EAF6F6&
	const	gGridFooterColor = &H00E2E8E8&
	const	gGridFixedColor = &H00E2E8E8&
	const	gGridLineColor = &H00D7CCC8&
	const	gGridTrueLineColor = &H00B29689&
	const	gSingleReadOnly = &H00ECF0ED&
	const	gSingleKangJo = &H00C17201&
	const	gWhiteColor = &H00FFFFFF&
	const	gBackColorSel = &HF3ECDB&
	const	gForeColorSel = &H5A4000&
	
	const	gRowColor1 = &H00FBB37B&
	const	gRowColor2 = &H00FCC69C&
	const	gRowColor3 = &H00FDD4B5&
	const	gRowColor4 = &H00FEDFC8&
	const	gRowColor5 = &H00FEE7D6&
	const	gRowColor6 = &H00FEEDE0&
	const	gRowColor7 = &H00FEF2E8&

	//	grid variable
	const gGridFlat = 0	' flexFlat	 0, flex3D	1,flex3Dlight	2, flexXPThemes	3
	const gRowHeight = 400
	const gRowHeightMin = 300

	sub sbGridInitial(objGrid)

			With objGrid
				.FontName           ="±¼¸²Ã¼"
				.FontSize           ="9"
				.BackColorFixed		= gGridTitleColor
				.BackColorBkg   	= gcolGridBackColorBkg
				.ForeColorFixed 	= gGridTitleTextColor
				.appearance     	= 0'gGridFlat
				.BackColorFrozen 	= gGridFrozenColor 
				.scrollTrack 		= True
				'FlexExNone 0, FlexExSort 1, FlexExMove 2, FlexExSortAndMove 3, FlexExSortShow 5, 
				'FlexExSortShowAndMove 7, FlexExMoveRows 8
				.BackColorSel		= gBackColorSel
				.ForeColorSel		= gForeColorSel
				.ExplorerBar		= 0
				.RowHeightMin		= gRowHeightMin
			end with
	end sub	

// ÀüÃ¼ ¼³¸í 
// Sub´Â ÇØ´ç Event¸¦ ¹ß»ý ½ÃÅ² °÷¿¡ °ªÀ» ³Ö¾î ÁØ´Ù. 
// function return°ªÀ» ³Ñ°Ü ÁØ´Ù. ÇØ´ç return °ªÀ» °³¹ßÀÚ°¡ ÇÁ·Î±×·¥À» ÇØ¾ß ÇÑ´Ù.

// *****************************************************
// 						¼ýÀÚ
// *****************************************************
//	Input Tag Validation

// input ¼ýÀÚ ÇÊµåÀÇ onKeyUp¿¡¼­ Ãµ ´ÜÀ§ ¸¶´Ù "," Ãß°¡ÇÏ´Â ºÎºÐ
// Sub sbInputAmtKeyUpObj(pDesc)  
//		: pDesc : Data ¼³¸í 

	 	 
// onBlur ¿¡¼­ ¼ýÀÚ, Length, ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
// Sub sbInputAmtBlurObj(pDesc, pTY_Necessary, pLength)
//		: pDesc : Data ¼³¸í 
//  	: pTY_Necessary : ÇÊ¼ö Á¤º¸ ±¸ºÐ
//		: pLength : ±æÀÌ ¿¹: "3,2" --> 100.02

// Object¸íÀ» ÁÖ°í ¼ýÀÚ, Length, ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
// Sub sbInputAmtObj(pObj, pDesc, pTY_Necessary, pLength)
//		: pObj : Call ÇÏ´Â object
//		: pDesc : Data ¼³¸í 
//		: pTY_Necessary  : ÇÊ¼ö Á¤º¸ ±¸ºÐ
//		: pLength : ±æÀÌ ¿¹: "3,2" --> 100.02

// Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ "," Ãß°¡ // ¸ÞÁöÁö´Â ¾ø°í ¹«Á¶°Ç °ª¸¸ º¯È¯ ÇÑ´Ù.
//	Function fnAmtCommaAdd(pData) 
// 		: pData : Comma¸¦ ºÙÀÏ Data
// 		: return : yes : Comma¸¦ ºÙÀÎ Data 
//			       no  : pData

// Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ "," »©´Â ºÎºÐ // ¸ÞÁöÁö´Â ¾ø°í ¹«Á¶°Ç °ª¸¸ º¯È¯ ÇÑ´Ù.
//	Function fnAmtCommaMinus(pData) 
//		: pData  : Comma¸¦ »« Data
// 		: return : yes : Comma¸¦ »« Data 
//			       no  : pData

// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í Return
//	Function fnRetrunOnlyNumeric(pData)
//		: pData : ÀÛ¾÷ÇÒ Data
//		: return : ¹®ÀÚ Áß¿¡¼­ ¹®ÀÚ¸¦ »« Data 



// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í ¼Ò¼öÁ¡ ÀÌÇÏ ¹ö¸®°í ¼ýÀÚ¸¸ ¸®ÅÏ 
// Function fnRetrunOnlyNumericFix(pData)
// 		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í ¼Ò¼öÁ¡ ÀÌÇÏ ¹ö¸®°í ¼ýÀÚ¸¸ ¸®ÅÏ 		

// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í('.'¿Í '-'(Á¦ÀÏ Ã³À½ ¹®ÀÚ) ¹®ÀÚ´Â ÇÏ³ª¸¸ ÀÎÁ¤) Return	 
//	Function fnRetrunOnlyNumericComma(pData)
// 		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í('.'¿Í '-'(Á¦ÀÏ Ã³À½ ¹®ÀÚ) ¹®ÀÚ´Â ÇÏ³ª¸¸ ÀÎÁ¤) Return	 

// ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å© 
//	Function fnCheckNumeric (pData, pDesc)
// 		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : true / false

// Grid¿¡¼­ ¼ýÀÚ Validate Ã¼Å©
//	Sub sbChkNumericGrid(pData, pDesc, pTY_Necessary)
//		: pData : ÀÛ¾÷ÇÒ Data
//		: pDesc : Data ¼³¸í 
//		: pTY_Necessary : ÇÊ¼ö Á¤º¸ ±¸ºÐ

// ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å©ÇÏ°í ¸Þ½ÃÁö No
//  Function fnCheckNumericNoMsg (pData)
//		: pData : ÀÛ¾÷ÇÒ Data
// 		: return : True / False 

// ¼ýÀÚ DataÀÇ Length Check ¼Ò¼öÁ¡ ÀÌÇÏ¿Í À­ ÀÚ¸® Ã¼Å© 
//	Function fnChkLenNumber(pData, pDesc, pLength)
// 		: pData  : ÀÛ¾÷ÇÒ Data
//		: pDesc  : Data ¼³¸í 
//		: pLength : checkÇÒ ¼ýÀÚ ÀÚ¸®¼ö 
//		: return : True / False

// ÀÚ¸®¼ö¿¡ ¸Â°Ô ¼ýÀÚ¸®ÅÏ (Ãµ ´ÜÀ§ ¸¶´Ù ',')  (¿¹ : 3,2 => 222.02 ) 
//	Function fnLenNumber(pData, pLength)
// 		: pData : ÀÛ¾÷ÇÒ Data
// 		: pLength : ÀÚ¸®¼ö 
//		: return : ÀÚ¸®¼ö¿¡ ¸Â°Ô ¼ýÀÚ ¸®ÅÏ

// *****************************************************
// 						³¯ÀÚ
// *****************************************************

// ³¯ÀÚ Validation Input 
// input ³¯ÀÚ ÇÊµåÀÇ onKeyUp¿¡¼­ "YYYY-MM-DD" Ã³·³ "-" Ãß°¡ÇÏ´Â ºÎºÐ
//	Sub sbInputDateKeyUpObj(pDesc)
// 		: pDesc : ÀÛ¾÷ÇÒ Data
	 
// onBlur ¿¡¼­ Date type ¹× ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
// 	Sub sbInputDateBlurObj (pDesc, pTY_Necessary) 
// 		: pDesc : ÀÛ¾÷ÇÒ Data
//		: pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò ±¸ºÐ (Y/N)

// 	Sub sbInputDateBlurYMObj (pDesc, pTY_Necessary)
// 		: pDesc : ÀÛ¾÷ÇÒ Data
//		: pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò ±¸ºÐ (Y/N)

	 
// Date Type Ã¼Å© (YYYY-MM-DD)
//	Function fnChkDate(pData, pDesc)
//		: pData : ÀÛ¾÷ÇÒ Data 
//		: pDesc : Data ¼³¸í 
//		: return : True / False

// Date YYYY-MM  Ã¼Å© (YYYY-MM)
// Function fnChkDateYM(pData, pDesc)
//		: pData : ÀÛ¾÷ÇÒ Data 
//		: pDesc : Data ¼³¸í 
//		: return : True / False


// ³¯ÀÚ Ã¼Å© ÇÔ¼ö (No Msg) (YYYY-MM-DD) return : True , False
// Function fnChkDateNoMsg(pData)
//		: pData : ÀÛ¾÷ÇÒ Data 

// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© "YYYY-MM-DD"À¸·Î ¸¸µç¾î ÁØ´Ù.
//	 Function fnDateSepaAdd(pData)
//		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : Empty / pData / "YYYY-MM-DD"

// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© "YYYY-MM"À¸·Î ¸¸µç¾î ÁØ´Ù.
// 	 Function fnDateSepaAddYM(pData)	
// 		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : Empty / pData / "YYYY-MM"

// Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ "-" »©´Â ºÎºÐ
//	 Function fnDateSepaMinus(pData)
// 		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : Empty / Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ "-" »« Data

// Grid¿¡¼­³¯ÀÚ Validation ÇÒ ¶§ ¾µ ÇÔ¼ö (YYYY-MM-DD)
//   Function fnChkDateGrid(pData, pDesc , pTY_Necessary)
//		: pData : ÀÛ¾÷ÇÒ Data
//		: pDesc : Data ¼³¸í 
//		: pTY_Necessary : ÇÊ¼ö ¿ä¼Ò ±¸ºÐ 
//		: return : True / False



// Grid¿¡¼­³¯ÀÚ Validation ÇÒ ¶§ ¾µ ÇÔ¼ö (YYYY-MM)
//   Function fnChkDateYMGrid(pData, pDesc , pTY_Necessary)	
//		: pData : ÀÛ¾÷ÇÒ Data
//		: pDesc : Data ¼³¸í 
//		: pTY_Necessary : ÇÊ¼ö ¿ä¼Ò ±¸ºÐ 
//		: return : True / False

// ±âÁØ ³¯ÀÚ¿¡¼­ ³¯ÀÚ¸¦ ´õÇÑ °ªÀ» ¸®ÅÏ ÇÏ´Â ÇÔ¼ö
//   Function fnDateAddDay(pData,pAdd)
// 		: pData : ÀÛ¾÷ÇÒ Data
//		: pAdd :  Ãß°¡ ÇÏ°íÀÚ ÇÏ´Â ³¯ÀÚ , »©°í ½ÍÀ¸¸é À½¼ö·Î ÀÔ·ÂÇÑ´Ù.
//		: return : ±âÁØ ³¯ÀÚ¿¡¼­ ³¯ÀÚ¸¦ ´õÇÑ °ª




// *****************************************************
//					 Empty Check 
// *****************************************************


// Empty Check() ÈÄ Empty¸é false Return
//	Function fnChkEmpty(pData)
//		: pData : ÀÛ¾÷ÇÒ Data 
//		: return : empty / true 

// Empty Check() ÈÄ Empty¸é Msgbox 
//	Function fnChkEmptyMsg(pData, pDesc, pTY_Msg)
//		: pData  : ÀÛ¾÷ÇÒ Data
//		: pDesc  : Data ¼³¸í 
//		: pTY_Msg : ¸Þ½ÃÁö¸¦ ¶ç¿ïÁö ¾È ¶ç¿ïÁö ±¸ºÐ 
// 		: return : True / False


// *****************************************************
// 						±âÅ¸ 
// *****************************************************
// e-mail Ã¼Å©
// Function fnCheckE_Mail(pData)
//		: pData : ÀÛ¾÷ÇÒ Data
//		: return : True / False

// 									MSGBOX 
// MsgBox "°æ°í¸¦ ³ªÅ¸³¾ ¶§ »ç¿ëÇÕ´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"
// MsgBox "Á¤º¸¸¦ ¾Ë¸± ¶§ »ç¿ëÇÕ´Ï´Ù.", vbOKOnly+vbInformation, "¾Ë¸²"
// MsgBox "¿¡·¯¸¦ ³ªÅ¸³¾ ¶§ »ç¿ëÇÕ´Ï´Ù. ", vbOKOnly+vbCritical, "¿À·ù"
// MsgBox "Áú¹®À» ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. ", vbYesNoCancel+vbQuestion, "È®ÀÎ"
// MsgBox ("Ã¹¹øÂ° ÁÙ" & (Chr(13))  & "µÎ¹øÂ° ÁÙ" , vbYesNo +vbQuestion, "È®ÀÎ") = vbYes   

// ÀÌ¹ÌÁöfileÀÇ  ¸¶Áö¸· ±ÛÀÚ °¡Á® ¿À´Â function (.È®ÀåÀÚ Á¦¿Ü)
// function fnImageLastText(pImgObj)
//		: pImgObj : ÀÛ¾÷ÇÒ ÀÌ¹ÌÁö °´Ã¼
//		: return : 	ÀÌ¹ÌÁöfileÀÇ  ¸¶Áö¸· ±ÛÀÚ

// ÁÖ¾îÁø ÀÌ¹ÌÁö ÆÄÀÏÀ» Diabled ÀÌ¹ÌÁö("X")·Î ¹Ù²Ù´Â °Í 
// Sub sbDisabledImage(pImgObj,pBoolean)
//		: pImgObj : ÀÛ¾÷ÇÒ ÀÌ¹ÌÁö °´Ã¼
//		: pBoolean : True / False

// Menu¸¦ »ç¿ë ÇÏÁö ¸øÇÏ°Ô ÇÏ´Â ÇÔ¼ö 
// Sub sbDisabledMenu(pTY_Menu, pBoolean)
// 		: pTY_Menu : ÀÛ¾÷ÇÒ ¸Þ´º  
//		: pBoolean : True / False

// ÁÖ¹Î ¹øÈ£ Ã¼Å© (pData : xxxxxx-ddddddd) 
// Function fnCheckSocialNo(pData)
//		: pData : ÀÛ¾÷ÇÒ Data
//		: return : True / False

// ÁÖ¹Î ¹øÈ£¿¡ - ºÙ¿© ÁÖ´Â ÇÔ¼ö 
// Function fnJuminSepaAdd(pData)

// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© ¿ìÆí¹øÈ£¸¦ ¸¸µé¾î ÁØ´Ù.
// Function fnZipSepaAdd(pData)	

// ÁÖ¹Î ¹øÈ£ Ã¼Å© (pObj :xxxxxx-ddddddd)
// Sub sbCheckSocialNo(pObj)
//		: pObj : ÀÛ¾÷ÇÒ °´Ã¼ 


// Status Bar ±Û¾¾ ¼¼ÆÃ 
// Sub sbStatus(pDesc)
//		: pDesc : status bar¿¡ ³ÖÀ» ³»¿ë 


// object Visibility  ¿øÇÏ´Â object³ª tag ¼û±â´Â ±â´É 
// Sub sbObjSetVisibility(pobj,pBoolean)
//		: pobj : ÀÛ¾÷ÇÒ °´Ã¼ 
//		: pBoolean : True / False


// Page Tab ¼¼ÆÃ 
// Sub sbSetPageTab(pCaller ,parrTab, parrDiv)
//		: pCaller : CallÇÑ Page Tab
// 		: parrTab : pageTab ¹è¿­ 
//		: parrDiv : ³»ºÎ ³»¿ë 

// ¿µ¹®¼¼ÆÃ, ´ë¹®ÀÚ 
// Sub sbSetEnglish()

// ÇÑ±Û¼¼ÆÃ, ´ë¹®ÀÚ 
// Sub sbSetHanGul()

// ¿µ¹®¼¼ÆÃ, ¼Ò¹®ÀÚ
// Sub sbSetEnglishOff()

// ÇÑ±Û ¼¼ÆÃ, ¼Ò¹®ÀÚ 
// Sub sbSetHanGulOff()

// Object¸¦ Disabled ½ÃÅ°´Â ÇÁ·Î½ÃÁ®
// Sub sbDisabledObj(pObj, pYN_Disabled) 
//		:pObj : ÀÛ¾÷ÇÒ obj
//		:pYN_Disabled : Y : Disabled  / N : Enabled

// IP Address Check
// function fnIPAddress(pData)
//		:pData : IP Address Check ÇÒ Data
//		: return : True / False

// file ¸í¿¡¼­ .°ú È®ÀåÀÚ¸¦ »« ³ª¸ÓÁö °ª(Áï ÀÌ¸§ÀÌ µÈ´Ù.) 
// function fnFileName(pData)
	
// file OCX¸¦ ÀÌ¿ëÇØ¼­ ÀúÀåÇÏ´Â ÇÔ¼ö 
// Sub sbFileSave(pValue, pFile, bOpen ,objFile) 
// pValue : business OCX Value 
// pFile : ÀúÀåÇÒ ÆÄÀÏ Name 
// bOpen : Dialog Show À¯¹«
// objFile : ÆÄÀÏ OCX Name

// *****************************************************
// *****************************************************
// 				 	Function 
// *****************************************************
// *****************************************************



// *****************************************************
// 						¼ýÀÚ Function
// *****************************************************

// input ¼ýÀÚ ÇÊµåÀÇ onKeyUp¿¡¼­ Ãµ ´ÜÀ§ ¸¶´Ù "," Ãß°¡ÇÏ´Â ºÎºÐ
Sub sbInputAmtKeyUpObj(pDesc, pLength) 
	Dim ObjData, strData
	Dim arrLength 
	arrLength = Split(pLength,".")
	Set ObjData = Window.Event.srcElement
	ObjData.style.textalign = "right"
	if ObjData.Value = "" then Exit Sub
	
	strData = fnRetrunOnlyNumericComma(Trim(Replace(ObjData.value,"","")))
	
	ObjData.Value = strData //FormatNumber(strData,0)
	
End Sub 


// Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ "," Ãß°¡ÇÏ´Â ºÎºÐ
Function fnAmtCommaAdd(pData)
  	Dim strData
	
	if pData = "" then Exit Function
	
	strData = Trim(Replace(pData,",",""))
	if isNumeric(strData) then
		fnAmtCommaAdd = FormatNumber(strData,0)
	else 
		fnAmtCommaAdd = pData
	end if 
End Function 	

// Data¸¦ °¡Á®¿À°í ÀúÀåÇÒ¶§ ÀÚ·áÁß¿¡¼­ ","  »©´Â ºÎºÐ
Function fnAmtCommaMinus(pData)
	fnAmtCommaMinus = Trim(Replace(pData,",","")) 
End Function 


// onBlur ¿¡¼­ ¼ýÀÚ, Length, ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
Sub sbInputAmtBlurObj(pDesc, pTY_Necessary, pLength)
	// pDesc : Á¤º¸ ¿ä¼Ò
	// pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò "Y" : Not Null Field , "N" or other : Null Field
	// pLength: ¼ýÀÚ ÀÚ¸®¼ö (¿¹: 3,2 => 123.20)
	Dim strData , objData
	Set objData = Window.event.srcElement
//	ObjData.style.textalign = "right"
	strData = Trim(objData.Value)
	//strData = fnRetrunOnlyNumericComma(Trim(objData.Value))
	
	// ÇÊ¼öÀÔ·Â Á¤º¸¸é focus Àç À§Ä¡
	if Trim(strData) = Empty and pTY_Necessary ="Y" then 
	
		MsgBox pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù." & (chr(13)) & "¹Ýµå½Ã ÀÔ·ÂÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
//		ObjMessage.MsgBoxOpen pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù." & "|"  & (chr(9)) & "¹Ýµå½Ã ÀÔ·ÂÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.",160	
		objData.focus
		Exit Sub
	elseif Trim(strData) = Empty and pTY_Necessary <>"Y" then 
		Exit Sub
	end if 		
	
	// ¼ýÀÚ°¡ ¾Æ´Ï¸é 
	if Not fnCheckNumeric(strData, pDesc) then 
		// focus Àç À§Ä¡
		objData.focus
		Exit Sub 
	end if 
	
	// Length Check()
	if fnChkLenNumber(strData, pDesc, pLength) then
		// focus Àç À§Ä¡
		objData.Value = fnLenNumber(strData, pLength)
	else 
		objData.focus
		Exit Sub 
	end if 
End Sub 

// Object¸íÀ» ÁÖ°í ¼ýÀÚ, Length, ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
Sub sbInputAmtObj(pObj, pDesc, pTY_Necessary, pLength)
	// pObj : Object 
	// pDesc : Á¤º¸ ¿ä¼Ò
	// pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò "Y" : Not Null Field , "N" or other : Null Field
	// pLength: ¼ýÀÚ ÀÚ¸®¼ö (¿¹: 3,2 => 123.20)
	Dim strData , objData
	Set objData = pObj
	ObjData.style.textalign = "right"
	strData = Trim(objData.Value)
	//strData = fnRetrunOnlyNumericComma(Trim(objData.Value))
	
	// ÇÊ¼öÀÔ·Â Á¤º¸¸é focus Àç À§Ä¡
	if Trim(strData) = Empty and pTY_Necessary ="Y" then 
		
		MsgBox pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù." & (chr(13)) & "¹Ýµå½Ã ÀÔ·ÂÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
		objData.focus
		Exit Sub
	elseif Trim(strData) = Empty and pTY_Necessary <> "Y" then 
		Exit Sub
	end if 		
	
	// ¼ýÀÚ°¡ ¾Æ´Ï¸é 
	if Not fnCheckNumeric(strData, pDesc) then 
		// focus Àç À§Ä¡
		objData.focus
		Exit Sub 
	end if 
	
	// Length Check()
	if fnChkLenNumber(strData, pDesc, pLength) then
		// focus Àç À§Ä¡
		objData.Value = fnLenNumber(strData, pLength)
	else 
		objData.focus
		Exit Sub 
	end if 

	
End Sub 

// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í Return
Function fnRetrunOnlyNumeric(pData)
	Dim strData, i 
	for i = 1 to len(pData)
		if isNumeric(Mid(pData,i,1)) then
			strData = strData & Mid(pData,i,1)
		end if 
	next 
		fnRetrunOnlyNumeric = strData
End Function
	 
// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í ¼Ò¼öÁ¡ ÀÌÇÏ ¹ö¸®°í ¼ýÀÚ¸¸ ¸®ÅÏ 
// 100.100 Àº 100¸¸ -100.20 Àº -100¸¸ ¸®ÅÏ ÇÑ´Ù.
Function fnRetrunOnlyNumericFix(pData)
	Dim strData, i 
	if len(Trim(pData)) = 1 then 	
		if Trim(pData) = "." then
			fnRetrunOnlyNumericFix = 0
			Exit Function
		end if 
	end if 
	
	
	for i = 1 to len(pData)
		if isNumeric(Mid(pData,i,1)) or (Mid(pData,i,1)= ".")  or (Mid(pData,i,1)= "-") then
			strData = strData & Mid(pData,i,1)			
		end if 
	next 
		fnRetrunOnlyNumericFix = Fix(strData)
End Function	 
	 
// pData ¹®ÀÚ Áß¿¡¼­ ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¸¸ »©°í('.'¿Í '-'(Á¦ÀÏ Ã³À½ ¹®ÀÚ) ¹®ÀÚ´Â ÇÏ³ª¸¸ ÀÎÁ¤) Return	 
Function fnRetrunOnlyNumericComma(pData)
	Dim strData, i, j
	for i = 1 to len(pData)
		// "."´Â Á¦ÀÏ ¸ÕÀú ³ª¿Â °Í¸¸ ReturnµÈ´Ù.
		if Mid(pData,i,1) = "." then 
			if j = 0 then 
				strData = strData & "."
				j = 1				
			else 			
				strData = strData
			end if 
		elseif Mid(pData,i,1) = "-" then 
			if i = 1 then 
				strData = strData & "-"
			end if 
		elseif Mid(pData,i,1) <> "." then
			if isNumeric(Mid(pData,i,1)) then
				strData = strData & Mid(pData,i,1)
			end if 
		end if 
	next 
		fnRetrunOnlyNumericComma = strData
End Function
	 
// ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å© 
Function fnCheckNumeric (pData, pDesc)
	if isNumeric(pData) then 
		fnCheckNumeric = True
	else
		if pDesc <> "" then 
			MsgBox pDesc & "¿¡ ÀÔ·ÂµÈ °ªÀÌ" & (chr(13)) & "¼ýÀÚ Å¸ÀÔÀÌ ¾Æ´Õ´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"
		end if 
		fnCheckNumeric = False
	end if 
 End function 
 
 
 // ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å©ÇÏ°í ¸Þ½ÃÁö No
Function fnCheckNumericNoMsg (pData)
	if isNumeric(pData) then 
		fnCheckNumericNoMsg = True
	else
		fnCheckNumericNoMsg = False
	end if 
 End function 

 

// ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å©ÇÑ ÈÄ True / False °ªÀ» ³Ñ°Ü ÁØ´Ù.
//  pData  : Data
//	pDesc  : ¼³¸í 
//	pTY_Necessary: Y : ÇÊ¼ö ÀÔ·Â , N : No ÇÊ¼ö ÀÔ·Â 	
//		¿ì¼± GridÀÇ Grid.ColFormat(ucAM_DATA)= "#,###"¸¦ ÁöÁ¤ÇÑ´Ù.
// 	 	CellÀ» ºüÁ® ³ª°¥ ¶§ ¼ýÀÚÅ¸ÀÔÀÎÁö(true)¾Æ´ÏÁö¸¸ Ã¼Å©ÇÑ´Ù.
//		Empty¸¸ Ã¼Å©ÇÑ´Ù.
function fnChkNumericGrid(pData, pDesc, pTY_Necessary)
	if Trim(pData) = Empty and  pTY_Necessary = "Y" then
		MsgBox pDesc & "¿¡´Â Data¸¦ ¹Ýµå½Ã ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. " & (chr(13)) & _
						"¼ýÀÚ¸¦ ÀÔ·ÂÇÏ¼¼¿ä " _ 
						, vbOKOnly+vbCritical, "¿À·ù"
		fnChkNumericGrid = False 
		Exit Function
	elseif Trim(pData) = Empty and  pTY_Necessary = "N" then
		fnChkNumericGrid = True
		Exit Function 
	end if 		

	// DATA¸¦ ÀÔ·ÂÇßÀ¸¸é ¼ýÀÚÅ¸ÀÔÀÎÁö Ã¼Å©
	if fnCheckNumeric(pData, pDesc) then
		fnChkNumericGrid = True
		Exit Function		
	else 
		fnChkNumericGrid = False
		Exit Function
	end if 
	
End function

 
 // ÀÔ·ÂÇÑ ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö Ã¼Å©
//  pData  : Data
//	pDesc  : ¼³¸í 
//	pTY_Necessary: Y : ÇÊ¼ö ÀÔ·Â , N : No ÇÊ¼ö ÀÔ·Â 	
//		¿ì¼± GridÀÇ Grid.ColFormat(ucAM_DATA)= "#,###"¸¦ ÁöÁ¤ÇÑ´Ù.
// 	 	CellÀ» ºüÁ® ³ª°¥ ¶§ ¼ýÀÚÅ¸ÀÔÀÎÁö(true)¾Æ´ÏÁö¸¸ Ã¼Å©ÇÑ´Ù.
//		Empty¸¸ Ã¼Å©ÇÑ´Ù.
Sub sbChkNumericGrid(pData, pDesc, pTY_Necessary)
	if Trim(pData) = Empty and  pTY_Necessary = "Y" then
		MsgBox pDesc & "¿¡´Â Data¸¦ ¹Ýµå½Ã ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. " & (chr(13)) & _
						"¼ýÀÚ¸¦ ÀÔ·ÂÇÏ¼¼¿ä " _ 
						, vbOKOnly+vbCritical, "¿À·ù"
		Exit Sub
	elseif Trim(pData) = Empty and  pTY_Necessary = "N" then

		Exit Sub
	
	end if 		
	

	// DATA¸¦ ÀÔ·ÂÇßÀ¸¸é ¼ýÀÚÅ¸ÀÔÀÎÁö Ã¼Å©
	if fnCheckNumeric(pData, pDesc) then
		Exit Sub
	else 
		Exit Sub
	end if 
End Sub
	 
// ¼ýÀÚ DataÀÇ Length Check ¼Ò¼öÁ¡ ÀÌÇÏ¿Í À­ ÀÚ¸® Ã¼Å© 
Function fnChkLenNumber(pData, pDesc, pLength)
	if Trim(pData) = empty then 
		pData = 0
	end if 
	
	Dim arrData , arrLeng	
	arrData = split(Trim(Replace(pData,"-","")),".")
	arrLength = split(Trim(pLength),",")
	
	if UBound(arrLength) = 0 then
		Dim arrTemp
		ReDim arrTemp(0)
		arrTemp(0) = arrLength(0)
		ReDim arrLength(1)
		arrLength(0) = arrTemp(0)
		arrLength(1) = 0
	end if
		
	if len(arrData(0)) > cint(arrLength(0)) then
		MsgBox pDesc & "¿¡ ÀÔ·ÂÇÏ½Å DataÀÇ¼Ò¼öÁ¡ À­ºÎºÐÀÇ ±æÀÌ°¡ ±é´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
		fnChkLenNumber = false
		Exit function
	end if
	 
	// Data´Â ¼Ò¼öÁ¡ ÀÌÇÏ°¡ Á¸Àç , ¼³Á¤Àº ¼Ò¼öÁ¡ ÀÌÇÏ ¾ø½¿ (10,0)
	
		if UBound(arrData)> 0 and  cint(arrLength(1)) = 0 then
			MsgBox pDesc & "¿¡ Á¤¼ö·Î ÀÔ·Â ÇÏ¼Å¾ß ÇÕ´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
			fnChkLenNumber = false
			Exit function
		end if 
	
	
	if uBound(arrData)> 0 then 
		if len(arrData(1)) > cint(arrLength(1)) then
			MsgBox pDesc & "¿¡ ÀÔ·ÂÇÏ½Å DataÀÇ ¼Ò¼öÁ¡ ÀÌÇÏ°¡ ±æÀÌ°¡ ±é´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
			fnChkLenNumber = false
			Exit function
		end if 
	end if 
	
	fnChkLenNumber = true
End Function	 






// ÀÚ¸®¼ö¿¡ ¸Â°Ô ¼ýÀÚ¸®ÅÏ (Ãµ ´ÜÀ§ ¸¶´Ù ',')  (¿¹ : 3,2 => 222.02 ) 
Function fnLenNumber(pData, pLength)
	if Trim(pData) = empty then 
		pData = 0
	end if
	
	Dim arrData , arrLeng	
	arrData = split(Trim(Replace(pData,"-","")),".")
	arrLength = split(Trim(pLength),",")
	
	// ±âº» ÀÚ¸® ¼¼ÆÃÀÌ ¼Ò¼öÁ¡ µÚ°¡ ÀÖÀ¸¸é 
	if uBound(arrLength)> 0 then 
		fnLenNumber = formatNumber(pData,arrLength(1),-1)	
	elseif uBound(arrLength)=0 then 
		fnLenNumber = formatNumber(pData,0,-1)	
	end if 
End Function 	
	


// *****************************************************
// 						³¯ÀÚ Functon
// *****************************************************
// input ³¯ÀÚ ÇÊµåÀÇ onKeyUp¿¡¼­ "YYYY-MM-DD" Ã³·³ "-" Ãß°¡ÇÏ´Â ºÎºÐ
Sub sbInputDateKeyUpObj(pDesc)
	Dim strData  
	Dim ObjData
	Dim strSepValue
	Set ObjData = Window.Event.srcElement
	strData = fnRetrunOnlyNumeric(Trim(ObjData.Value))

	If  strData = "" then Exit Sub

	strData = Trim(Replace(strData,"-",""))

 	If Len(strData) > 8 then  
		MsgBox pDesc & "¿¡ Data°¡ Çü½Ä¿¡ ¸ÂÁö ³º½À´Ï´Ù." & (chr(13)) & _
				"³¯Â¥ Å¸ÀÔ(YYYY-MM-DD)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
				, vbOKOnly+vbCritical, "¿À·ù"		
		Exit Sub
	ElseIf Len(strData)< 8 then 
		
		If Len(strData) < 4 then
			strSepValue =Mid(strData,1,4) 
		ElseIf Len(strData) = 4 then
			if  Window.event.Keycode <> 8 then 
				strSepValue =Mid(strData,1,4) & "-" 			
			else 
				strSepValue =Mid(strData,1,4)
			end if 
		ElseIf Len(strData) = 5 then
			strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) 
		ElseIf Len(strData) = 6 then
			if  Window.event.Keycode <> 8 then 
				strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-"
			else 
				strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2)
			end if 
		ElseIf (Len(strData)>=7) then
			strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
		End If 
	
		ObjData.Value = strSepValue
		Exit Sub
	ElseIf Len(strData) = 8 then 
		
		strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
		
	//	if fnChkDate(strSepValue, pDesc) then 
	//		ObjData.Value = strSepValue
	//	else 
	//		Exit Sub
	//	end if 
	End If 
	

End Sub
	 
	

// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© "YYYY-MM-DD"À¸·Î ¸¸µç¾î ÁØ´Ù.
Function fnDateSepaAdd(pData)	
	Dim strData
	Dim strSepValue
	if Trim(pData) = empty then 
		fnDateSepaAdd = Empty
		Exit Function
	end if
	
	if Len(pData) > 8 or Len(pData) < 8 then 
		fnDateSepaAdd = pData
	end if 
	
	strData = Trim(Replace(pData,"-",""))
	strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
	fnDateSepaAdd = strSepValue
End Function	

// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© "YYYY-MM"À¸·Î ¸¸µç¾î ÁØ´Ù.
Function fnDateSepaAddYM(pData)	
	Dim strData
	Dim strSepValue
	if Trim(pData) = empty then 
		fnDateSepaAddYM = Empty
		Exit Function
	end if
	
	if Len(pData) > 6 or Len(pData) < 6 then 
		fnDateSepaAddYM = pData
	end if 
	
	strData = Trim(Replace(pData,"-",""))
	strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) 
	fnDateSepaAddYM = strSepValue
End Function	

	 
// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Á¦°Å ÇÑ´Ù.
Function fnDateSepaMinus(pData)	
	Dim strData
	if Trim(pData) = empty then 
		fnDateSepaMinus = empty
		Exit Function
	end if
	
	strData = Trim(Replace(pData,"-",""))
	fnDateSepaMinus = strData
End Function	

	
	
	
// onBlur ¿¡¼­ Date type ¹× ÇÊ¼ö ÀÔ·Â Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
Sub sbInputDateBlurObj(pDesc, pTY_Necessary)
	// pDesc : Á¤º¸ ¿ä¼Ò
	// pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò "Y" : Not Null Field , "N" or other : Null Field
	
	Dim strData , objData
	Set objData = Window.event.srcElement
	strData = fnRetrunOnlyNumeric(objData.Value)
	
	// ÇÊ¼öÀÔ·Â Á¤º¸¸é focus Àç À§Ä¡
	if Trim(strData) = Empty and pTY_Necessary ="Y" then 
		MsgBox pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù." & (chr(13)) & "¹Ýµå½Ã ÀÔ·ÂÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
		objData.focus
		Exit Sub
	elseif Trim(strData) = Empty and pTY_Necessary <> "Y" then 
		Exit Sub
	end if 	
	
	// ³¯ÀÚ TypeÀÌ ¾Æ´Ï¸é 
	if Not fnChkDate(strData, pDesc) then 
		// focus Àç À§Ä¡
		objData.focus
		Exit Sub 
	else 
		objData.value = fnDateSepaAdd(strData)
	end if 

End Sub 

// onBlur ¿¡¼­ ³â¿ù¸¸À» ÀÔ·Â ÇÒ ¶§ Ã¼Å© ÇÏ´Â ÇÁ·Î½ÃÁ®
Sub sbInputDateBlurYMObj(pDesc, pTY_Necessary)
	// pDesc : Á¤º¸ ¿ä¼Ò
	// pTY_Necessary : ÇÊ¼ö ÀÔ·Â ¿ä¼Ò "Y" : Not Null Field , "N" or other : Null Field
	
	Dim strData , objData
	Set objData = Window.event.srcElement
	strData = fnRetrunOnlyNumeric(objData.Value)
	
	// ÇÊ¼öÀÔ·Â Á¤º¸¸é focus Àç À§Ä¡
	if Trim(strData) = Empty and pTY_Necessary ="Y" then 
		MsgBox pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù." & (chr(13)) & "¹Ýµå½Ã ÀÔ·ÂÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
		objData.focus
		Exit Sub		
	elseif Trim(strData) = Empty and pTY_Necessary <> "Y" then 
		Exit Sub
	end if 	
	
	// ³¯ÀÚ TypeÀÌ ¾Æ´Ï¸é 
	if Not fnChkDateYM(strData, pDesc) then 
		// focus Àç À§Ä¡
		objData.focus
		Exit Sub 
	else 
		objData.value = fnDateSepaAddYM(strData)
	end if 

End Sub 

// Date Type Ã¼Å© (YYYY-MM-DD)
Function fnChkDate(pData, pDesc)
	Dim strData
	Dim strSepValue
	
	strData = Trim(Replace(pData,"-",""))
	
	// ÀÚ¸®¼ö°¡ 8ÀÌ ¾Æ´Ï¸é 
	if Len(strData) <> 8 then 
			MsgBox pDesc & "¿¡ Data°¡ Çü½Ä¿¡ ¸ÂÁö ³º½À´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(YYYY-MM-DD)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDate = false  
			Exit Function
	end if 
	
	
	strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
	
	if Mid(strData,1,2) <> "19" and Mid(strData,1,2) <> "20" then 
			MsgBox pDesc & "¿¡ Data°¡ 19XX³â 20XX³âÀÌ ¾Æ´Õ´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(19XX³â 20XX³â)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDate = false  
			Exit Function
	end if 
	
	On Error Resume Next 
		FormatDateTime(Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2))
		// Error °¡ ¹ß»ýÀÌ µÆ´Ù¸é 
		If Err.Number <> 0 then 
			MsgBox pDesc & "¿¡ Data°¡ Çü½Ä¿¡ ¸ÂÁö ³º½À´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(YYYY-MM-DD)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDate = false  
			Exit Function
		End If
	On Error Goto 0
	fnChkDate = true
End Function

// ³¯ÀÚ Ã¼Å© ÇÔ¼ö (No Msg) (YYYY-MM-DD) return : True , False
Function fnChkDateNoMsg(pData)
	Dim strData
	Dim strSepValue
	
	strData = Trim(Replace(pData,"-",""))
	
	// ÀÚ¸®¼ö°¡ 8ÀÌ ¾Æ´Ï¸é 
	if Len(strData) <> 8 then 
			fnChkDateNoMsg = false  
			Exit Function
	end if 
	
	
	strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
	
	if Mid(strData,1,2) <> "19" and Mid(strData,1,2) <> "20" then 
			fnChkDateNoMsg = false  
			Exit Function
	end if 
	
	On Error Resume Next 
		FormatDateTime(Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2))
		// Error °¡ ¹ß»ýÀÌ µÆ´Ù¸é 
		If Err.Number <> 0 then 
			fnChkDateNoMsg = false  
			Exit Function
		End If
	On Error Goto 0
	fnChkDateNoMsg = true
End Function

// Date YYYY-MM  Ã¼Å© (YYYY-MM)
Function fnChkDateYM(pData, pDesc)
	Dim strData
	Dim strSepValue
	
	// ³¯ÀÚ typeÃ¼Å© ÇÏ±â À§ÇØ µÚ¿¡ "01"¸¦ ºÙ¿©¼­ YYYY-MM-DD·Î ¸¸µé¾î ³õ´Â´Ù.
	strData = Trim(Replace(pData,"-","")) & "01"
	
	// ÀÚ¸®¼ö°¡ 8ÀÌ ¾Æ´Ï¸é 
	if Len(strData) <> 8 then 
			MsgBox pDesc & "¿¡ Data°¡ Çü½Ä¿¡ ¸ÂÁö ³º½À´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(YYYY-MM)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDateYM = false  
			Exit Function
	end if 
	
	
	strSepValue =Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2)
	
	if Mid(strData,1,2) <> "19" and Mid(strData,1,2) <> "20" then 
			MsgBox pDesc & "¿¡ Data°¡ 19XX³â 20XX³âÀÌ ¾Æ´Õ´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(19XX³â 20XX³â)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDateYM = false  
			Exit Function
	end if 
	
	On Error Resume Next 
		FormatDateTime(Mid(strData,1,4) & "-" & Mid(strData,5,2) & "-" & Mid(strData,7,2))
		// Error °¡ ¹ß»ýÀÌ µÆ´Ù¸é 
		If Err.Number <> 0 then 
			MsgBox pDesc & "¿¡ Data°¡ Çü½Ä¿¡ ¸ÂÁö ³º½À´Ï´Ù." & (chr(13)) & _
							"³¯Â¥ Å¸ÀÔ(YYYY-MM)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
							, vbOKOnly+vbCritical, "¿À·ù"
			fnChkDateYM = false  
			Exit Function
		End If
	On Error Goto 0
	fnChkDateYM = true
End Function


// Grid¿¡¼­³¯ÀÚ Validation ÇÒ ¶§ ¾µ ÇÔ¼ö 
//  pData  : Data
//	pDesc  : ¼³¸í 
//	pTY_Necessary: Y : ÇÊ¼ö ÀÔ·Â , N : No ÇÊ¼ö ÀÔ·Â 	
//  Grid¿¡¼­ focus°¡ µÇÁö ¾Ê±â ¶§¹®¿¡ ¸Þ½ÃÁö¸¸ »Ñ·Á ÁØ´Ù. 
//		Cell À» ºüÁ® ³ª°¥ ¶§ fnChkDateGrid¸¦ CallÇÏ¿© TrueÀÌ¸é 
//	 	    Data¿¡ "    -  - "¸¦ ºÙ¿© ÁØ´Ù.fnDateSepaAdd ÀÌ¿ë
Function fnChkDateGrid(pData, pDesc , pTY_Necessary)		

	if Trim(pData) = Empty and  pTY_Necessary = "Y" then
		MsgBox pDesc & "¿¡´Â Data¸¦ ¹Ýµå½Ã ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. " & (chr(13)) & _
						"³¯Â¥ Å¸ÀÔ(YYYY-MM-DD)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
						, vbOKOnly+vbCritical, "¿À·ù"
		fnChkDateGrid = false
		Exit Function
	elseif Trim(pData) = Empty and  pTY_Necessary = "N" then
		fnChkDateGrid = True
		Exit Function
	end if 		
	
	if fnChkDate(pData, pDesc) then 
		fnChkDateGrid = True
	else 
		fnChkDateGrid = false
	end if 
	
End Function	

// Grid¿¡¼­³¯ÀÚ Validation ÇÒ ¶§ ¾µ ÇÔ¼ö 
//  pData  : Data
//	pDesc  : ¼³¸í 
//	pTY_Necessary: Y : ÇÊ¼ö ÀÔ·Â , N : No ÇÊ¼ö ÀÔ·Â 	
//  Grid¿¡¼­ focus°¡ µÇÁö ¾Ê±â ¶§¹®¿¡ ¸Þ½ÃÁö¸¸ »Ñ·Á ÁØ´Ù. 
//		Cell À» ºüÁ® ³ª°¥ ¶§ fnChkDateGrid¸¦ CallÇÏ¿© TrueÀÌ¸é 
//	 	    Data¿¡ "    -  "¸¦ ºÙ¿© ÁØ´Ù.fnDateSepaAddYM ÀÌ¿ë
Function fnChkDateYMGrid(pData, pDesc , pTY_Necessary)		

	if Trim(pData) = Empty and  pTY_Necessary = "Y" then
		MsgBox pDesc & "¿¡´Â Data¸¦ ¹Ýµå½Ã ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. " & (chr(13)) & _
						"³¯Â¥ Å¸ÀÔ(YYYY-MM)¿¡ ¸Â°Ô ÀÔ·Â ÇÏ¼¼¿ä" _ 
						, vbOKOnly+vbCritical, "¿À·ù"
		fnChkDateYMGrid = false
		Exit Function
	elseif Trim(pData) = Empty and  pTY_Necessary = "N" then
		fnChkDateYMGrid = True
		Exit Function
	end if 		
	
	if fnChkDateYM(pData, pDesc) then 
		fnChkDateYMGrid = True
	else 
		fnChkDateYMGrid = false
	end if 
	
End Function	
	
	
// ±âÁØ ³¯ÀÚ¿¡¼­ ³¯ÀÚ¸¦ ´õÇÑ °ªÀ» ¸®ÅÏ ÇÏ´Â ÇÔ¼ö
// pAdd : Ãß°¡ ÇÏ°íÀÚ ÇÏ´Â ³¯ÀÚ , »©°í ½ÍÀ¸¸é À½¼ö·Î ÀÔ·ÂÇÑ´Ù.
Function fnDateAddDay(pData,pAdd)
	Dim strData
	strData = fnDateSepaAdd(pData)
	fnDateAddDay =  cstr(DateAdd("d",pAdd, strData))
End Function
// *****************************************************
//					 Empty Check Function 
// *****************************************************
// Empty Check() ÈÄ Empty¸é false Return
Function fnChkEmpty(pData)
	if Trim(pData) = empty then
		fnChkEmpty = false
		Exit Function
	end if
	fnChkEmpty = True
End Function
 
// Empty Check() ÈÄ Empty¸é Msgbox 
Function fnChkEmptyMsg(pData, pDesc, pTY_Msg)
	if Trim(pData) = empty then
		if pTY_Msg = "Y" then 
			MsgBox pDesc & "¿¡ Data°¡ ºñ¾î ÀÖ½À´Ï´Ù.", vbOKOnly+vbCritical, "¿À·ù"
			fnChkEmptyMsg = false
			Exit Function
		end if 
			fnChkEmptyMsg = false
			Exit Function
	end if
	fnChkEmptyMsg = True
End Function

// *****************************************************
// 						±âÅ¸  Function
// *****************************************************

// e-mail Ã¼Å©
Function fnCheckE_Mail(pData)
	If Instr(pData, "@") = 0 Or Instr(pData, ".") = 0 then
		MsgBox "¿Ã¹Ù¸¥ EmailÁÖ¼Ò°¡ ¾Æ´Õ´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		fnCheckE_Mail = false
	else
		fnCheckE_Mail = true
	end if
End Function

// ÀÌ¹ÌÁöfileÀÇ  ¸¶Áö¸· ±ÛÀÚ °¡Á® ¿À´Â function (.È®ÀåÀÚ Á¦¿Ü)
function fnImageLastText(pImgObj)

	fnImageLastText = Mid(pImgObj.src,InStrRev(pImgObj.src,".")-1,1)
	
End function 

// ÁÖ¾îÁø ÀÌ¹ÌÁö ÆÄÀÏÀ» Diabled ÀÌ¹ÌÁö("X")·Î ¹Ù²Ù´Â °Í 
// pImgObj : ¸Þ´º : ÀÛ¾÷¸Þ´º ¹öÆ° ÀÌ¸§ idMenuWork ,¸®Æ÷Æ®¸Þ´º ¹öÆ° ÀÌ¸§  idMenuReport
Sub sbDisabledImage(pImgObj, pBoolean)
	Dim ImgNewSrc
	Dim imgName
	imgName = Mid(pImgObj.src,InStrRev(pImgObj.src,"/")+1,InStrRev(pImgObj.src,".")-2-InStrRev(pImgObj.src,"/"))
	if pBoolean = true then
		ImgNewSrc = mid(pImgObj.src, 1, InStrRev(pImgObj.src,"/")) & imgName & "X.gif"
		pImgObj.Disabled = True
		
		//pImgObj.style.cursor = "Default"
		pImgObj.src = ImgNewSrc
	elseif pBoolean = false then
		ImgNewSrc = mid(pImgObj.src, 1, InStrRev(pImgObj.src,"/")) & imgName & "O.gif"
		pImgObj.Disabled = False
		//pImgObj.style.cursor = "Hand"
		pImgObj.src = ImgNewSrc	
	end if 
End Sub

// Menu¸¦ »ç¿ë ÇÏÁö ¸øÇÏ°Ô ÇÏ´Â ÇÔ¼ö 
// pTY_Menu : "ÀÛ¾÷" , "º¸°í¼­", "ÀÛ¾÷/º¸°í¼­" 
//  pBoolean : True : Disabled , False : Enabled
Sub sbDisabledMenu(pTY_Menu, pBoolean)
	if pTY_Menu = "ÀÛ¾÷" then
		Call sbDisabledImage(idMenuWork, pBoolean)
	elseif pTY_Menu = "º¸°í¼­" then
		Call sbDisabledImage(idMenuReport, pBoolean)
	elseif pTY_Menu = "ÀÛ¾÷/º¸°í¼­" then
		Call sbDisabledImage(idMenuWork, pBoolean)
		Call sbDisabledImage(idMenuReport, pBoolean)		
	end if 
End Sub

// ÁÖ¹Î ¹øÈ£ Ã¼Å© (xxxxxx-ddddddd) (pObj : xxxxxx  , pObj2 : ddddddd)
Function fnCheckSocialNo(pData)
	dim strSno
	dim checkNum
	dim No(12)
	dim i
	
	if fnCheckNumericNoMsg(replace(pData,"-","")) = False then
		MsgBox "ÁÖ¹Î¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		fnCheckSocialNo = False
		Exit Function
	elseif Len(replace(pData,"-","")) <> 13  then
		MsgBox "ÁÖ¹Î¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		fnCheckSocialNo = False
		Exit Function
	elseif not(mid(pdata,7,1) = "1" or mid(pdata,7,1) = "2" or mid(pdata,7,1) = "3" or mid(pdata,7,1) = "4") Then     
		MsgBox "ÁÖ¹Î¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		fnCheckSocialNo = False
		Exit Function
	end if

	if mid(pdata,7,1) = "1" or mid(pdata,7,1) = "2" Then
		if	fnChkDateNoMsg("19" & mid(pData,1,6)) = False Then
			fnCheckSocialNo = False
			Exit Function
		end if	
	else
		if	fnChkDateNoMsg("20" & mid(pData,1,6)) = False Then
			fnCheckSocialNo = False
			Exit Function
		end if	
	end if	
		
	strSno = pData
	
	for i = 0 to 12
		No(i) = mid(strSno, i+1, 1)
	next
	
	checkNum = 11-(No(0)*2+No(1)*3+No(2)*4+No(3)*5+No(4)*6+No(5)*7+No(6)*8+No(7)*9+No(8)*2+No(9)*3+No(10)*4+No(11)*5) Mod 11
	
	if (checkNum >= 10) and (checkNum <= 11) then
		checkNum = checkNum - 10
	end if
	
	if No(12) <> cStr(checkNum) then
		MsgBox "ÁÖ¹Î¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		fnCheckSocialNo = False
	else
		fnCheckSocialNo = True
	end if
End Function

// ÁÖ¹Î ¹øÈ£ Ã¼Å© (xxxxxx-ddddddd)
Sub sbCheckSocialNo(pObj)
	dim strSno
	dim checkNum
	dim No(12)
	dim i
	
	strSno = PObj.Value
	
	for i = 0 to 12
		No(i) = mid(strSno, i+1, 1)
	next
	
	checkNum = 11-(No(0)*2+No(1)*3+No(2)*4+No(3)*5+No(4)*6+No(5)*7+No(6)*8+No(7)*9+No(8)*2+No(9)*3+No(10)*4+No(11)*5) Mod 11
	
	if (checkNum >= 10) and (checkNum <= 11) then
		checkNum = checkNum - 10
	end if
	
	if No(12) <> cStr(checkNum) then
		MsgBox "ÁÖ¹Î¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.", vbOKOnly+vbExclamation, "ÁÖÀÇ"	
		pObj.select
		pObj.focus
	else
		//
	end if
End Sub

//   1 1 6 8 1 4 0 1 9 3 
// x 1 3 7 1 3 7 1 3 5 
//   1+3+2+8+3+8+0+3+4+5+3 = 40 : ³¡ÀÚ¸®°¡ 0À¸·Î ³¡³ª¾ß ÇÑ´Ù. 
Function fnCheckVendor(strData) 
	Dim varCheck, strValue, varData, intSum, intTemp, strTemp, iCheckValue, i

	IF strData = "1388108534" THEN
	   fnCheckVendor = False 
	   Exit Function 
	End if 
		
	strValue = "137137135" 

	If fnCheckNumericNoMsg(strData) = False Then
		fnCheckVendor = False
		Exit Function
	ElseIf Len(strData) <> 10 Then 
	   fnCheckVendor = False 
	   Exit Function 
	End if 

	ReDim varCheck(8) 
	For i = 0 To 8 
		varCheck(i) = Mid(strValue, i+1, 1) 
	Next 

	ReDim varData(9) 
	For i = 0 To 9 
		varData(i) = Mid(strData, i+1,1) 
	Next 

	For i = 0 To 7 
		intTemp = (varCheck(i) * varData(i)) mod 10 
	 	intSum = intSum + intTemp 
	Next 
	strTemp = varCheck(8) * varData(8) 

	Select Case Len(strTemp) 
		Case 1 iCheckValue = CInt(strTemp)
		Case 2 iCheckValue = CInt(Left(strTemp,1)) + CInt(Right(strTemp,1))
	End Select 

	intSum = intSum + iCheckValue + varData(9) 

	If intSum mod 10 <> 0 Then 
		fnCheckVendor = False 
	Else 
		fnCheckVendor = True 
	End If 
End Function 

// Status Bar ±Û¾¾ ¼¼ÆÃ 
Sub sbStatus(pDesc)
	
	window.status=  gstrUserName & " | " & gstrDS_DEPT & " | " & gstrAspName & " | " & pDesc
End Sub

// object Visibility  ¿øÇÏ´Â object³ª tag ¼û±â´Â ±â´É 
Sub sbObjSetVisibility(pobj,pBoolean)
	// pBoolean : True  : Visible
	//			  False : Hidden		
	if pBoolean = True then
		pObj.Style.Visibility =  "Visible"
	else
		pObj.Style.Visibility =  "Hidden" 
	end if 

End Sub


// Page Tab ¼¼ÆÃ 
// parrTab : Page Tab Button ÀÌ¸§(Object)À» ¹è¿­·Î ³Ñ±ä´Ù.
// parrDiv : DivÀÇ  id¸¦ ¹è¿­·Î ³Ñ±ä´Ù. 
// ¿¹: sbSetPageTab(array(Tab1,Tab2). array(div1,div2))
Sub sbSetPageTab(pCaller ,parrTab, parrDiv)
	Dim i , j
	// ¾î¶² Tab ButtonÀ» Å¬¸¯Çß´ÂÁö Ã£´Â´Ù.
	for i= 0 to UBound(parrTab)
		if parrTab(i).name = pCaller.name then 
			j =  i
		end if 
	next
	
	// Click() ÇÑ ¹öÆ°Àº On button , Div visibilty visible À¸·Î ³ª¸ÓÁö´Â off ¹öÆ°, Div visibilty hidden À¸·Î 
	for i = 0 to UBound(parrTab)
		if i = j then
			Call sbTabImageChange(parrTab(i), False)
			parrDiv(i).style.visibility = "Visible"
		else
			Call sbTabImageChange(parrTab(i), True)
			parrDiv(i).style.visibility = "Hidden"
		end if 		
	next 

End Sub

// Tab ÀÌ¹ÌÁö º¯È¯ÇÏ´Â ÇÁ·Î½ÃÁ® 
// pImgObj: ÀÌ¹ÌÁö °´Ã¼ 
// pBack  : True :  ¾ÕÀ¸·Î  False :  µÚ·Î  
Sub sbTabImageChange(pImgObj,pForward)
	Dim ImgNewSrc
	Dim ImgPath
	Dim imgName
	ImgPath = mid(pImgObj.src, 1, InStrRev(pImgObj.src,"/"))
	imgName = Mid(pImgObj.src,InStrRev(pImgObj.src,"/")+1,InStrRev(pImgObj.src,".")-2-InStrRev(pImgObj.src,"/"))
	
	if pForward = true then
		ImgNewSrc = ImgPath & imgName & "X.gif"
				
		pImgObj.style.cursor = "Hand"
		pImgObj.src = ImgNewSrc
	elseif pForward = false then
		ImgNewSrc = ImgPath & imgName & "O.gif"

		pImgObj.style.cursor = "Hand"
		pImgObj.src = ImgNewSrc	
	end if 
 
End Sub

// ¿µ¹®¼¼ÆÃ, ´ë¹®ÀÚ 
Sub sbSetEnglish()
	ObjBusiness.fnSetEnglish 
	ObjBusiness.fnSetCapsLockOn 
End Sub

// ÇÑ±Û¼¼ÆÃ, ´ë¹®ÀÚ 
Sub sbSetHanGul()
	ObjBusiness.fnSetHangul
	ObjBusiness.fnSetCapsLockOn 
End Sub

// ¿µ¹®¼¼ÆÃ, ¼Ò¹®ÀÚ
Sub sbSetEnglishOff()
	ObjBusiness.fnSetEnglish 
	ObjBusiness.fnSetCapsLockOff 
End Sub

// ÇÑ±Û ¼¼ÆÃ, ¼Ò¹®ÀÚ 
Sub sbSetHanGulOff()
	ObjBusiness.fnSetHangul
	ObjBusiness.fnSetCapsLockOff 
End Sub

// CPU ¿¡ Null °ª ÀÔ·Â ÇÏ´Â ºÎºÐ 
Sub sbSendEvent()
	for i = 0 to gintLoofSendEvent 
		objAuthBusiness.fnSendEvent 
		
		objAuthBusiness.fnSendEvent		
	next

End Sub


// Object¸¦ Disabled ½ÃÅ°´Â ÇÁ·Î½ÃÁ®
// pTY_Disabled 
//	 Y : Disabled
// 	 N : Not Disabled
Sub sbDisabledObj(pObj, pYN_Disabled) 
	if pYN_Disabled = "Y" or pYN_Disabled = True then
		if Left(pObj.name,3) = "txt" then 
			pObj.Readonly = true
		else 
			pObj.disabled = true		
		end if 
	elseif pYN_Disabled = "N" or pYN_Disabled = False then
		if Left(pObj.name,3) = "txt" then 
			pObj.Readonly = False
		else 
			pObj.disabled = False	
		end if 	
	end if
End Sub


// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© ÁÖ¹Î¹øÈ£¸¦ ¸¸µé¾î ÁØ´Ù.
Function fnJuminSepaAdd(pData)	
	Dim strData
	Dim strSepValue
	if Trim(pData) = empty then 
		fnJuminSepaAdd = Empty
		Exit Function
	end if
	
	strData = Trim(Replace(pData,"-",""))
	strSepValue =Mid(strData,1,6) & "-" & Mid(strData,7,7) 
	fnJuminSepaAdd = strSepValue
End Function


// ÁÖ¾îÁø Data¿¡¼­ Msg¾øÀÌ´Ü¼øÈ÷ "-"¸¦ Ãß°¡ÇÏ¿© ¿ìÆí¹øÈ£¸¦ ¸¸µé¾î ÁØ´Ù.
Function fnZipSepaAdd(pData)	
	Dim strData
	Dim strSepValue
	if Trim(pData) = empty then 
		fnZipSepaAdd = Empty
		Exit Function
	end if
	
	strData = Trim(Replace(pData,"-",""))
	strSepValue =Mid(strData,1,3) & "-" & Mid(strData,4,3) 
	fnZipSepaAdd = strSepValue
End Function	


// IP Address Check
function fnchkIPAddress(pData)
	Dim strData
	strData = Replace(pData,".","")
 	// "."¸¦ Á¦¿ÜÇÑ Data°¡ ¸ðµÎ ¼ýÀÚÀÎÁö Ã¼Å©
	if fnCheckNumericNoMsg(strData) = false then 
		ObjMessage.MsgBoxOpen "IP ÁÖ¼Ò´Â ¼ýÀÚ¿Í '.'·Î ±¸¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.",96	
		fnchkIPAddress = False
		Exit Function 
	end if 
	
	// "."¸¦ Á¦¿ÜÇÑ DataÀÇ ±æÀÌ°¡ 12ÀÚ¸®ÀÎÁö Ã¼Å©
	//if len(pData) <> 15 then 
	//	ObjMessage.MsgBoxOpen "IP ÁÖ¼Ò´Â 'xxx.xxx.xxx.xxx' ·Î ±¸¼ºµÇ¾î¾ß ÇÕ´Ï´Ù. ",96	
	//	fnchkIPAddress = False
	//	Exit Function 
	//end if 
//  . À» ±âÁØÀ¸·Î SPLITÇØ¼­ Ã¼Å© 203.23.234.2 °¡ µÉ¼ö µµ ÀÖ±â ¶§¹® 	
//	if fnCheckNumericNoMsg(left(pData,1,3)) = false or fnCheckNumericNoMsg(left(pData,5,3)) = false or fnCheckNumericNoMsg(left(pData,9,3)) = false or fnCheckNumericNoMsg(left(pData,13,3)) = false _ 
//	   or left(pData,4,1) <> "." or left(pData,8,1) <> "." or left(pData,12,1) <> "." then 
//		ObjMessage.MsgBoxOpen "IP ÁÖ¼Ò´Â 'xxx.xxx.xxx.xxx' ·Î ±¸¼ºµÇ¾î¾ß ÇÕ´Ï´Ù. ",96	
//		fnchkIPAddress = False
//		Exit Function 
//	end if 
	fnchkIPAddress = True
end Function 

// file ¸í¿¡¼­ .°ú È®ÀåÀÚ¸¦ »« ³ª¸ÓÁö °ª(Áï ÀÌ¸§ÀÌ µÈ´Ù.) 
function fnFileName(pData)
	if Len(Trim(pData)) < 1 then 
		fnFileName = pData
	else
		fnFileName = Trim(mid(Trim(pData), 1, InStrRev(Trim(pData),".")-1))
	end if
end function



// file OCX¸¦ ÀÌ¿ëÇØ¼­ ÀúÀåÇÏ´Â ÇÔ¼ö 
Sub sbFileSave(pValue, pFile, bOpen ,objFile) 
// pValue : business OCX Value 
// pFile : ÀúÀåÇÒ ÆÄÀÏ Name 
// bOpen : Dialog Show À¯¹«
// objFile : ÆÄÀÏ OCX Name
    Dim objFileSystem 

	Dim MyFile,MyFileName
	Dim rsCnt,i,j,strTmp		

	set objFileSystem = objFile.SetFileSystem()
		if bOpen = True then
			MyFileName =  objFile.FileDialog (pFile)	
		Else
			MyFileName = pFile
		End if	
		
	Set MyFile = objFileSystem.CreateTextFile(MyFileName, True)
	    rsCnt =  Ubound(pValue,2)	
	    If rsCnt > 0 then		
		for i = 0 to rsCnt-1				
		strTmp = ""
			for j=0 to ubound(pValue,1)			
				strTmp = strTmp &  Trim(pValue(j,i))  
			next
			MyFile.WriteLine(strTmp)
		next 		
	    End If
	    MyFile.Close	
End Sub 

// msgbox ´ë½Å ´ëÈ­»óÀÚ¸¦ ¶ç¿î´Ù.
// strMsg :  ´ëÈ­»óÀÚ¿¡ Ç¥½ÃÇÒ ¸Þ½ÃÁö
// typ :	1 - È®ÀÎ ¹öÆ°
//			2 - ¿¹, ¾Æ´Ï¿À
function fnMsgBox(strMsg, numType)

	Dim strWindow, arrArgument
		
'	arrArgument = array(strMsg)
	fnMsgBox=Window.showModalDialog("../../../cz/inc/cze_MsgDlg.asp?strMode=ShowModal&TY_BTN=" & numType, strMsg, _
				" dialogWidth: 407px; dialogHeight:203px; dialogTop: px; dialogLeft: px; center: Yes; help: No; resizable: NO; status: No;")	
end function
