/************************************************************************
 * Á¦  ¸ñ	: °øÅëÃ³¸® ½ºÅ©¸³Æ®
 * File¸í   : OREmpCardOfficer  
 * ÀÛ¼ºÀÏ	: 2004.06.24
 * ÀÛ¼ºÀÚ	: FKL Logistics System Jeong Bong-Hee   
 * ¼³  ¸í	: °¢ È­¸é¿¡¼­ include ÇÏ¿© °øÅë ½ºÅ©¸³Æ® Ã³¸®¸¦ ÇÑ´Ù.
 ************************************************************************
¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á INDEX ¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á
¡á Window °ü·Ã
cmOpenWin(path,windowname,w,h,scroll) 		- Open Window
cmOpenDialogWin(path,windowname,w,h,scroll)	- Modal Window
cmOpnConfirmWin(cmMsgMode,cmMsg,cmIconGb)			- ¸Þ¼¼Áö Ã³¸® Ã¢
cmOpenCalendar(obj)							- ´Þ·Â Á¶È¸Ã¢
cmCreateTableString(tableId)				- Table Html String »ý¼º

¡áÈ­¸é, ÀÔ·ÂÆû Á¦¾î
cmTabIndexSet(formNm, arrTabIndex)	- ÅÇ ÀÎµ¦½º ¼ø¼­ Á¤ÀÇ
cmDateTypeIn(obj)					- onfocus ½Ã ³â¿ùÀÏ ±¸ºÐÀÚ[/] Á¦°Å
cmCheckDate(obj)					- outfocus ½Ã ³â¿ùÀÏ ±¸ºÐÀÚ »ðÀÔ
cmRemoveComma(obj) 					- ÀÔ·Â°ª¿¡¼­ ÄÞ¸¶¸¦ ¾ø¾Ø´Ù
cmClearForm(obj)					- ÇØ´ç ÆûÀÇ TEXT,RADIO,CHECKBOX,SELECT Clear
cmInputNumChk()						- ÀÔ·Â¹Ú½º¿¡ ¼ýÀÚ¸¸ ÀÔ·Â
cmInputPlusNumChk()					- ÀÔ·Â¹Ú½º¿¡ ¾ç¼ö¸¸ ÀÔ·Â
cmTruncateNum(sval,i) 				- ¼Ò¼öÁ¡ Àý»ç

¡áData º¯È¯
cmGetRawDate(sDate)	       - ³¯Â¥ÀÔ·Â°ª¿¡¼­ ±¸ºÐÀÚÀÎ '/', '.', '-',':' µîÀ» Á¦°ÅÇÏ¿© ¸®ÅÏ
cmSetDateType(sDate)       - ³â¿ùÀÏ 8ÀÚ¸® ³¯Â¥ valid Check 
					       	 validÀÌ¸é YYYY/MM/DDÀÇ Çü½ÄÀ¸·Î ¸®ÅÏ
					       	 invalidÀÌ¸é ""·Î ¸®ÅÏ
cmTrim(str)			       - ¹®ÀÚ¿­³»ÀÇ ¿ÞÂÊ, ¿À¸¥ÂÊÀÇ °ø¹éÀ» Á¦°Å
cmLtrim( str )		       - ¹®ÀÚ¿­³»ÀÇ ¿ÞÂÊ °ø¹éÀ» Á¦°Å
cmRtrim( str )		       - ¹®ÀÚ¿­³»ÀÇ ¿À¸¥ÂÊ °ø¹éÀ» Á¦°Å
cmGetRawAmt(samt)	       - Ãµ´ÜÀ§ ±¸ºÐÀÚ "," Á¦°Å
cmConvAmt(sval)		       - Ãµ´ÜÀ§ ±¸ºÐÀÚ "," »ðÀÔ
cmNtoValue(sval,retval)    - °ªÀÌ null,°ø¹éÀÏ¶§ ±âº»°ªÀ¸·Î Ä¡È¯
cmRound(sval,n,cutGb)      - ¹Ý¿Ã¸²
cmNumFormat(num,len)       - ¼ýÀÚ ÀÚ¸´¼ö Æ÷¸Ë
cmAddDate(checkDate,flg,i) - Add DAte (flg : year="y", month="m", day="d")
cmGetWeek(date, objWeek)   - Æ¯Á¤ÀÏÀÚÀÇ ¿äÀÏ °¡Á®¿À±â(³¯Â¥, ¿äÀÏÀÌ µé¾î°¥ InputBox Name)

¡á ÀÔ·Â°ª Ã¼Å©
cmContainsChars(obj,chars) - ÀÔ·Â°ª¿¡ Æ¯Á¤ ¹®ÀÚ(chars)°¡ ÀÖ´ÂÁö Ã¼Å©
									Æ¯Á¤ ¹®ÀÚ¸¦ Çã¿ëÇÏÁö ¾ÊÀ¸·Á ÇÒ ¶§ »ç¿ë
cmContainsCharsOnly(obj,chars) - ÀÔ·Â°ªÀÌ Æ¯Á¤ ¹®ÀÚ(chars)¸¸À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 									Æ¯Á¤ ¹®ÀÚ¸¸ Çã¿ëÇÏ·Á ÇÒ ¶§ »ç¿ë
cmIsAlphabet(obj)			- ÀÔ·Â°ªÀÌ ¾ËÆÄºªÀÎÁö Ã¼Å©
cmIsUpperCase(obj)			- ÀÔ·Â°ªÀÌ ¾ËÆÄºª ´ë¹®ÀÚÀÎÁö Ã¼Å©
cmIsLowerCase(obj)			- ÀÔ·Â°ªÀÌ ¾ËÆÄºª ¼Ò¹®ÀÚÀÎÁö Ã¼Å©
cmIsNumber(obj)				- ÀÔ·Â°ª¿¡ ¼ýÀÚ¸¸ ÀÖ´ÂÁö Ã¼Å©
cmIsAlphaNum(obj			- ÀÔ·Â°ªÀÌ ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
cmIsNumDash(obj)			- ÀÔ·Â°ªÀÌ ¼ýÀÚ,´ë½Ã(-)·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
cmIsNumComma(obj)			- ÀÔ·Â°ªÀÌ ¼ýÀÚ,ÄÞ¸¶(,)Á¡(.)À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
cmIsNumDashComma(obj) 		- ÀÔ·Â°ªÀÌ ¼ýÀÚ,ÄÞ¸¶(,)Á¡(-)À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©

cmIsValidFormat(obj,format)	- ÀÔ·Â°ªÀÌ »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Æ÷¸Ë Çü½ÄÀÎÁö Ã¼Å©
cmIsValidEmail(obj)			- ÀÔ·Â°ªÀÌ ÀÌ¸ÞÀÏ Çü½ÄÀÎÁö Ã¼Å©  1:OK, 0:NO, -1:hanmail
cmIsValidPhone(obj)			- ÀÔ·Â°ªÀÌ ÀüÈ­¹øÈ£ Çü½Ä(¼ýÀÚ-¼ýÀÚ-¼ýÀÚ)ÀÎÁö Ã¼Å©

*************************************************************************
¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡áWindow °ü·Ã¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á
*************************************************************************/
/************************************************************************
¡á PopUp Window 
 ************************************************************************/
//¢ÑOpen Window
function cmOpenWin(path,windowname,w,h,scroll) {
	var win=null, LeftPosition, TopPosition;
	
	LeftPosition=(screen.width)?(screen.width-w)/2:100;
	TopPosition=(screen.height)?(screen.height-h)/2:100;
	
	if(scroll==null) scroll = 'no';

	settings='width='+w+',height='+h+
			 ',top='+TopPosition+
			 ',left='+LeftPosition+
			 ',scrollbars='+scroll+
			 ',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
	
	win=window.open(path,windowname,settings);
	if(win.focus) win.focus();
}
//¢ÑModal Window
function cmOpenDialogWin(path,windowname,w,h,scroll) {
	
	var arrResult = new Array();
	var LeftPosition, TopPosition;

	LeftPosition=(screen.width)?(screen.width-w)/2:100;
	TopPosition=(screen.height)?(screen.height-h)/2:100;
	
	if(scroll==null) scroll = 'no';

	settings='dialogWidth:'+w+'px;dialogHeight:'+h+
			 'px;dialogtop:'+TopPosition+
			 'px;dialogleft:'+LeftPosition+
			 'px;scroll:'+scroll+
			 ';status:no';
		
	arrResult = window.showModalDialog(path, windowname,settings);

	if(typeof(arrResult) == 'object' ||
	   (typeof(arrResult) == 'string' && arrResult != 'logout')){
		return arrResult;
	}	
	else
	{
		//alert("ÀÚ! ÁÖ¸ñ! ¿©±â¢Ñ" + arrResult + "°¡ [logout]ÀÌ¸é ´ÙÀ½ ¶ß´Â ¸Þ¼¼Áö¸¦ ¸»¾¸ ÇØ ÁÖ¼¼¿ä");	
		if(arrResult == 'logout'){ 
			
			cmProcessLogin(); 
			return; }
	}
	
}

function cmProcessLogin() {
	var isOpenerTargetYN = cmIsOpenerTarget();

	if(isOpenerTargetYN) {	// opener°¡ ÀÖÀ¸¸é
		//alert("isOpenerTargetYN=" + isOpenerTargetYN + "/½Å°í ÇØ ÁÖ¼¼¿ä");
		opener.cmProcessLogin();
		self.close();
		return;
	}

	var isModalTargetYN = cmIsModalTarget();

	if(isModalTargetYN) {	// modalÃ¢ÀÎ°æ¿ì
		//alert("isModalTargetYN=" + isModalTargetYN + "/½Å°í ÇØ ÁÖ¼¼¿ä"); 
		window.returnValue = "logout";
		self.close();
		return;
	}

	var isParentTargetYN = cmIsParentTarget();

	if(!isParentTargetYN)
	{ // parent°¡ ¾øÀ¸¸é
		window.top.location.href = "/jsp/logout.jsp";
	}
	else
	{ // parent°¡ ÀÖÀ¸¸é
		parent.cmProcessLogin();
	}
}

// modal ¿©ºÎ
function cmIsModalTarget() {
	if(window.dialogArguments==null) return false;
	else return true;
}
// parent°¡ ÀÖ³Ä
function cmIsParentTarget() {
	if(parent.templateForm==null) return false;
	if(parent.templateForm.systemTime==null) return false;

	if(templateForm.systemTime.value==parent.templateForm.systemTime.value) return false;
	else return true;
}

// opener°¡ ÀÖ³Ä
function cmIsOpenerTarget() {
	if(opener==null) return false;
	else return true;
}


/********************************************************************
¡á È®ÀÎ Ã¢
winMode : È®ÀÎ(OK) / È®ÀÎ,Ãë¼Ò(OC) / ¿¹,¾Æ´Ï¿À(YN)
return  : È®ÀÎ(O) / Ãë¼Ò(C) / ¿¹(Y) / ¾Æ´Ï¿À(N)
*********************************************************************/
function cmOpnConfirmWin(cmMsgMode, cmMsg){
	var rtnValue;
	
	rtnValue = cmOpnConfirmWin(cmMsgMode, cmMsg, "");
		
	return rtnValue;
}

/********************************************************************
¡á È®ÀÎ Ã¢
winMode : È®ÀÎ(OK) / È®ÀÎ,Ãë¼Ò(OC) / ¿¹,¾Æ´Ï¿À(YN)
return  : È®ÀÎ(O) / Ãë¼Ò(C) / ¿¹(Y) / ¾Æ´Ï¿À(N)
*********************************************************************/
function cmOpnConfirmWin(cmMsgMode, cmMsg, cmIconGb){
	var rtnValue;

	rtnValue = cmOpenDialogWin('/jsp/com/cmConfirmWin.jsp?cmMsgMode=' + cmMsgMode + '&cmMsg=' + cmMsg + '&cmIconGb=' + cmIconGb,'pop','400','250','0');
		
	return rtnValue;
}

/********************************************************************
¡á ¿¡·¯ ¸Þ¼¼Áö Ã¢
winMode : È®ÀÎ(OK)
return  : È®ÀÎ(O)
*********************************************************************/
function cmOpnErrMsgWin(cmMsg){
	var rtnValue;
	
	rtnValue = cmOpenDialogWin('/jsp/com/cmErrMsgWin.jsp?cmMsg=' + cmMsg,'pop','400','300','0');
		
	return rtnValue;
}

/************************************************************************
¡á ´Þ·Â Á¶È¸ Ã¢
 ************************************************************************/
function cmOpenCalendar(objnm){

	var arrResult;
	arrResult = cmOpenDialogWin('/jsp/com/cmCalendarH.jsp?inputDate=' + eval('document.all.' + objnm + '.value') ,'pop','250','280','0');
	//arrResult = cmOpenWin('/jsp/com/cmCalendarH.jsp','pop','250','300','0');

	if(typeof(arrResult) == "string" && arrResult != ""){
		
		eval("document.all." + objnm + ".value='" + arrResult + "'");
	   	eval("document.all." + objnm + ".focus();");
    }
}

/************************************************************************
¡á Table Html String »ý¼º
 ************************************************************************/
function cmCreateTableString(tableId){

	var tableString = "<table border=1>";
	var rowSpan = 0;
	var colSpan = 0;
	var selectSkip = false;
	for(var i=0; i<tableId.rows.length; ++i){
		tableString = tableString + "<tr>";
		for(var j=0; j<tableId.rows[i].cells.length; ++j){
			tableString = tableString + "<td";
			
			rowSpan = tableId.rows[i].cells[j].rowSpan;
			colSpan = tableId.rows[i].cells[j].colSpan;
			
			if(rowSpan > 1){
				tableString = tableString + " rowSpan= " + rowSpan;
			}

			if(colSpan > 1){
				tableString = tableString + " colSpan= " + colSpan;
			}

			tableString = tableString + ">";
			selectSkip = false;
			for(var k=0; k<tableId.rows[i].cells[j].all.length; ++k){
				if(tableId.rows[i].cells[j].all.item(k).tagName.toUpperCase() == "INPUT"){
					if(tableId.rows[i].cells[j].all.item(k).type.toUpperCase() == "TEXT"){
						tableString = tableString + " " + tableId.rows[i].cells[j].all.item(k).value;
					}
					else if(tableId.rows[i].cells[j].all.item(k).type.toUpperCase() == "RADIO"){
						if(tableId.rows[i].cells[j].all.item(k).checked == true){
							tableString = tableString + " ¡Ü";
						}
						else{
							tableString = tableString + " ¡Û";
						}
					}
					else if(tableId.rows[i].cells[j].all.item(k).type.toUpperCase() == "CHECKBOX"){
						if(tableId.rows[i].cells[j].all.item(k).checked == true){
							tableString = tableString + " ¡á";
						}
						else{
							tableString = tableString + " ¡à";
						}
					}
				}
				else if(tableId.rows[i].cells[j].all.item(k).tagName.toUpperCase() == "SELECT"){
					
					tableString = tableString + " " + tableId.rows[i].cells[j].all.item(k).options[tableId.rows[i].cells[j].all.item(k).selectedIndex].text;
					selectSkip = true;
					break;
				}
			}
			if(selectSkip == false){
				tableString = tableString + tableId.rows[i].cells[j].outerText;
			}
			
			
			tableString = tableString + "</td>";
		}
		tableString = tableString + "</tr>";
		
	}
	tableString = tableString + "</table>";
	return tableString;
}

/************************************************************************
¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡áÈ­¸é, ÀÔ·ÂÆû Á¦¾î¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á
 ************************************************************************/
/************************************************************************
¡á TAb Index ¼ø¼­ ¼¼ÆÃ
 ************************************************************************/
function cmTabIndexSet(formNm, arrTabIndex){
	
	var i=0;

	for(i=0;i<arrTabIndex[0].length;i++){
		eval(formNm + "." + arrTabIndex[0][i]).tabIndex = -1;
	}
	
	for(i=0;i<arrTabIndex[1].length;i++){
		eval(formNm + "." + arrTabIndex[1][i]).tabIndex = i+1;
	}
	
	if(arrTabIndex[1].length > 0){
		eval(formNm + "." + arrTabIndex[1][0]).focus();
	}
	
}

/************************************************************************
¡á onfocus ½Ã ³â¿ùÀÏ ±¸ºÐÀÚ Á¦°Å
 ************************************************************************/
function cmDateTypeIn(obj){

	obj.value = cmGetRawDate(obj.value);
	obj.select();

}

/************************************************************************
¡á outfocus ½Ã ³â¿ùÀÏ ±¸ºÐÀÚ »ðÀÔ
 ************************************************************************/
function cmCheckDate(obj){
	var tempVal = cmGetRawDate(obj.value);
	if( (tempVal.length != 0) && (tempVal.length != 8) ) {
		//alert(" ³¯Â¥Çü½ÄÀº YYYY/MM/DD ÀÔ´Ï´Ù.");
		cmOpnConfirmWin("OK","³¯Â¥Çü½ÄÀº YYYY/MM/DD ÀÔ´Ï´Ù.","x");
		obj.value = obj.defaultValue;
		obj.focus();
	} else {
		if( (obj.value.length != 0) && (cmSetDateType(obj.value) == "") )
		{
			//alert(" ¿Ã¹Ù¸¥ ³¯Â¥°¡ ¾Æ´Õ´Ï´Ù. ");
			cmOpnConfirmWin("OK","¿Ã¹Ù¸¥ ³¯Â¥°¡ ¾Æ´Õ´Ï´Ù.","x");
			obj.value = obj.defaultValue;
			obj.focus();
		}
		obj.value = cmSetDateType(obj.value);
	}
}

/************************************************************************
¡á ÀÔ·Â°ª¿¡¼­ Ãµ´ÜÀ§ ±¸ºÐÀÚ ¾ø¾Ø´Ù.
 ************************************************************************/
function cmRemoveComma(obj) {
    obj.value = obj.value.replace(/,/gi,"");
    obj.select();
}

/************************************************************************
¡á ÀÔ·Â°ª¿¡¼­ Ãµ´ÜÀ§ ±¸ºÐÀÚ »ðÀÔ.
 ************************************************************************/
function cmAddComma(obj) {
    obj.value = cmConvAmt(obj.value);
}

/************************************************************************
¡á ÇØ´ç ÆûÀÇ TEXT,RADIO,CHECKBOX,SELECT Clear
 ************************************************************************/
function cmClearForm(obj)
{
	var i=0;

	for(i=0;i<obj.length;i++)
    {
		if(obj.item(i).tagName.toUpperCase() == "INPUT" )
		{
			if (obj.item(i).type.toUpperCase() == "TEXT")
			{
				obj.item(i).value = "";
			}
			else if(obj.item(i).type.toUpperCase() == "PASSWORD")
			{
				obj.item(i).value = "";
			}
			else if(obj.item(i).type.toUpperCase() == "RADIO")
			{
				obj.item(i).checked = false;
			}
			else if(obj.item(i).type.toUpperCase() == "CHECKBOX")
			{
				obj.item(i).checked = false;
			}
		}
		else if (obj.item(i).tagName.toUpperCase() == "SELECT")
		{
			obj.item(i).selectedIndex = 0;
		}
	}

}

/************************************************************************
¡á ÀÔ·Â¹Ú½º¿¡ ¼ýÀÚ¸¸ ÀÔ·Â
 ************************************************************************/
function cmInputNumChk()
{
	if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
}

/************************************************************************
¡á ÀÔ·Â¹Ú½º¿¡ Á¤¼ö¸¸ ÀÔ·Â
 ************************************************************************/
function cmInputPlusNumChk()
{
	if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;
}

/************************************************************************
¡á ¼Ò¼öÁ¡ Àý»ç
 ************************************************************************/
function cmTruncateNum(sval,i) {
	var i, k=1, retVal;
	var intValue;
	var pointUnderValue;

	intValue = String(parseInt(sval));
	pointUnderValue = String(sval - parseInt(sval));

	retVal = intValue 
	
	if(i > 0){
		if(pointUnderValue == 0){
			retVal += ".0";
		}
		else{
			retVal += "." + String(pointUnderValue).substring(2, i + 2);
		}
	}
	
	return retVal;
}

/************************************************************************
¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡áData º¯È¯¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á
 ************************************************************************/

/************************************************************************
¡á ³¯Â¥ÀÔ·Â°ª¿¡¼­ ±¸ºÐÀÚÀÎ '/', '.', '-',':' µîÀ» Á¦°ÅÇÏ¿© ¸®ÅÏ
 ************************************************************************/

function cmGetRawDate(sDate) {
	if(sDate==null || sDate == "") return "";

	sDate = sDate.replace(/\//g,"");
	sDate = sDate.replace(/-/g,"");
	sDate = sDate.replace(/\./g,"");
	sDate = sDate.replace(/\:/g,"");
	return sDate;
}

/************************************************************************
¡á ³â¿ùÀÏ 8ÀÚ¸® ³¯Â¥ valid Check
validÀÌ¸é YYYY/MM/DDÀÇ Çü½ÄÀ¸·Î ¸®ÅÏ
invalidÀÌ¸é ""·Î ¸®ÅÏ
 ************************************************************************/
function cmSetDateType(sDate) {
	sDate = cmGetRawDate(sDate);

	var sYear = "", sMonth = "", sDay = "";
	var iYear = 0, iMonth = 0, iDay = 0;

	if(sDate.length != 8) {
		return "";
	} else {

		sYear = sDate.substring(0,4);
		sMonth = sDate.substring(4,6);
		if(parseFloat(sMonth) < 10) sMonth = "0" + parseFloat(cmTrim(sMonth));
		sDay = sDate.substring(6,8);
		if(parseFloat(sDay) < 10) sDay = "0" + parseFloat(cmTrim(sDay));
	}

    if(isNaN(sYear) || isNaN(sMonth) || isNaN(sDay)) return "";

    iYear = parseInt(sYear,'10');
    iMonth = parseInt(sMonth,'10');
    iDay = parseInt(sDay,'10');

    if (iYear < 1) iYear = 0;
    if (iMonth < 1 || iMonth > 12)  iMonth = 0;
    if (iDay < 1) iDay = 0;

    if ( iMonth == 1 || iMonth == 3 || iMonth == 5 || iMonth == 7 || iMonth == 8 ||
         iMonth == 10 || iMonth == 12)  {
		if (iDay > 31) iDay = 0;
    } else if (iMonth == 4 || iMonth == 6 ||  iMonth == 9 || iMonth == 11) {
		if (iDay > 30) iDay = 0;
    } else if (iMonth == 2 )  {
		if (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) {
			if (iDay > 28) iDay = 0;
		} else if (iDay > 29) iDay = 0;
    }

    if(iYear == 0 || iMonth == 0 || iDay == 0) return "";

    return sYear+"/"+sMonth+"/"+sDay;
}

/************************************************************************
¡á ¹®ÀÚ¿­³»ÀÇ ¿ÞÂÊ, ¿À¸¥ÂÊÀÇ °ø¹éÀ» Á¦°Å
 ************************************************************************/
function cmTrim(str) {
	str = cmLtrim( str );
	str = cmRtrim( str );
	return str;
}

/************************************************************************
¡á ¹®ÀÚ¿­³»ÀÇ ¿ÞÂÊ °ø¹éÀ» Á¦°Å
 ************************************************************************/
function cmLtrim( str ) {
	var iLen = str.length;
	var idx = 0;
	for(idx=0 ; idx<iLen; idx++ ) {
		if( str.charAt(idx)!=' ' ) break
	}
	return str.substring( idx,iLen );
}

/************************************************************************
¡á ¹®ÀÚ¿­³»ÀÇ ¿À¸¥ÂÊ °ø¹éÀ» Á¦°Å
 ************************************************************************/
function cmRtrim( str ) {
	var iLen = str.length;
	var idx = 0;
	for(idx=iLen-1 ; idx>=0; idx-- ) {
		if( str.charAt(idx)!=' ' ) break;
	}
	return str.substring( 0,idx+1 );
}


/************************************************************************
¡á Ãµ´ÜÀ§ ±¸ºÐÀÚ "," Á¦°Å
 ************************************************************************/
function cmGetRawAmt(samt) {
	if(samt == "") return "0";
	var sPatt = /\,/g;  			// Pattern Á¤ÀÇ
	var sVal = samt.replace(sPatt,"");  // comma¸¦ blank·Î º¯°æ
	return sVal;
}

/************************************************************************
¡á Ãµ´ÜÀ§ ±¸ºÐÀÚ "," »ðÀÔ
 ************************************************************************/
function cmConvAmt(sval) {

	sval = parseInt(sval,10);
	
	if(String(sval) != "NaN"){
		sval = String(sval);
	
		var sRst="";  // °á°ú°ª
		var iOrd=sval.length;  // ±æÀÌ
		if((sval.substring(0,1)) == "-") {
			sval = sval.substring(1,iOrd);
			iOrd -= 1; sRst = "-";
		}
		for(var i = 0; i < sval.length; i++) {
			sRst += sval.substring(i,i+1);
			if(iOrd != 1 && (iOrd-1) % 3 == 0) sRst += ",";
			iOrd -= 1;
		}
		return sRst;
	}
	else{
		return "";
	}
}


/************************************************************************
¡á °ªÀÌ null,°ø¹éÀÏ¶§ ±âº»°ªÀ¸·Î Ä¡È¯
 ************************************************************************/
function cmNtoValue(sval,retval) {
	if(sval == null || sval == "") {
		return retval;
	}
	else{
		return sval;
	}
}
		
/************************************************************************
¡á ¹Ý¿Ã¸²
 ************************************************************************/
function cmRound(sval,n,cutGb) {
	var i, k=1, retVal;
	var intValue;
	var stringValue;
	var lastNum;

	for(i=0;i<=n;++i){
		k *= 10;
	}

	intValue = parseInt(sval * k);

	stringValue = String(intValue);
	
	if(cutGb == "1"){ //¹Ý¿Ã¸² 
		lastNum = stringValue.substring(stringValue.length - 1, stringValue.length);

		if(lastNum >= 5){
			intValue = intValue + 10;
			stringValue = String(intValue);
		}
	}
	k /= 10;
	stringValue = cmNtoValue(stringValue.substring(0,stringValue.length - 1),0);
	return parseInt(stringValue) / k;
}

function cmFRound(num, pos) { 
    	var posV = Math.pow(10, (pos ? pos : 2))
    	return Math.round(num*posV)/posV
    }
    
/************************************************************************
¡á ¼ýÀÚ ÀÚ¸´¼ö Æ÷¸Ë
 ************************************************************************/
function cmNumFormat(num,len)
{
	tempNum = '' + num;
	lenNum = tempNum.length;
	returnNum = '';

	if(lenNum > len) return tempNum;

	for(i=0;i<len-lenNum;i++)
	{
		returnNum = returnNum + '0';
	}

	return returnNum + tempNum;

}

/************************************************************************
¡á Add DAte (flg : year="y", month="m", day="d")
 ************************************************************************/
function cmAddDate(checkDate,flg,i){
	
	checkDate = cmGetRawDate(checkDate);
	var dateTypeVal = new Date(checkDate.substring(0,4),checkDate.substring(4,6)-1,checkDate.substring(6,8));

	var retDate;
	
	var nWeekDay=dateTypeVal.getDay();
	
	if(flg == "y"){
		retDate = new Date(dateTypeVal.getFullYear() + i,dateTypeVal.getMonth(),dateTypeVal.getDate());
	}
	else if(flg == "m"){	
		retDate = new Date(dateTypeVal.getFullYear(),dateTypeVal.getMonth() + i,dateTypeVal.getDate());
	}
	else if(flg == "d"){
		retDate = new Date(dateTypeVal.getFullYear(),dateTypeVal.getMonth(),dateTypeVal.getDate() + i);
	}
	else{
		retDate = new Date(dateTypeVal.getFullYear(),dateTypeVal.getMonth(),dateTypeVal.getDate());
	}

		return retDate.getFullYear() + "/" + cmNumFormat(retDate.getMonth()+1,2) + "/" + cmNumFormat(retDate.getDate(),2);
}

/************************************************************************
¡á Æ¯Á¤ÀÏÀÚÀÇ ¿äÀÏ °¡Á®¿À±â
 ************************************************************************/
    function cmGetWeek(date, objWeek)  {

        var day;

        if( date.length < 8 )    return false;

        if( date.length == 10 ) {
            day = cmGetRawDate(date);
        } else {
            day = date;
        }

        var dateTypeVal = new Date(day.substring(0, 4), (((day.substring(4, 6))/1)-1), day.substring(6, 8));
        var week = dateTypeVal.getDay();

        switch(week) {
            case 0 : objWeek.value = "ÀÏ";  break;

            case 1 : objWeek.value = "¿ù";  break;

            case 2 : objWeek.value = "È­";  break;

            case 3 : objWeek.value = "¼ö";  break;

            case 4 : objWeek.value = "¸ñ";  break;

            case 5 : objWeek.value = "±Ý";  break;

            case 6 : objWeek.value = "Åä";  break;

            default: break;
        }

        return true;
    }
/*
    function cmGetWeek(obj, objWeek)  {
        var date = cmGetRawDate(obj.value);
        switch(escape(event.keyCode))   {
            case '33' : 
            case '34' : 
            case '35' : 
            case '36' : 
            case '37' : 
            case '38' : 
            case '39' : 
            case '40' : return false;
            
            default   : break;             
        }
      
        if( date.length < 8 )    return false;

        var dateTypeVal = new Date(date.substring(0, 4), (((date.substring(4, 6))/1)-1), date.substring(6, 8));
        var week        = dateTypeVal.getDay();

        switch(week) {
            case 0 : objWeek.value = "ÀÏ";  break;

            case 1 : objWeek.value = "¿ù";  break;

            case 2 : objWeek.value = "È­";  break;

            case 3 : objWeek.value = "¼ö";  break;

            case 4 : objWeek.value = "¸ñ";  break;

            case 5 : objWeek.value = "±Ý";  break;

            case 6 : objWeek.value = "Åä";  break;

            default: break;
        }      
        
        obj.select();

        return true;

    }

*/

 

/************************************************************************
¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á ÀÔ·Â°ª Ã¼Å©¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á
*************************************************************************/
/************************************************************************
¡á ÀÔ·Â°ª¿¡ Æ¯Á¤ ¹®ÀÚ(chars)°¡ ÀÖ´ÂÁö Ã¼Å©
Æ¯Á¤ ¹®ÀÚ¸¦ Çã¿ëÇÏÁö ¾ÊÀ¸·Á ÇÒ ¶§ »ç¿ë
ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
         alert("ÀÌ¸§ ÇÊµå¿¡´Â Æ¯¼ö ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
     }
*************************************************************************/

function cmContainsChars(obj,chars) {
    for (var inx = 0; inx < obj.value.length; inx++) {
       if (chars.indexOf(obj.value.charAt(inx)) != -1)
           return true;
    }
    return false;
}

/************************************************************************
¡á ÀÔ·Â°ªÀÌ Æ¯Á¤ ¹®ÀÚ(chars)¸¸À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 Æ¯Á¤ ¹®ÀÚ¸¸ Çã¿ëÇÏ·Á ÇÒ ¶§ »ç¿ë
 ex) if (!cmContainsCharsOnly(form.blood,"ABO")) {
         alert("Ç÷¾×Çü ÇÊµå¿¡´Â A,B,O ¹®ÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.");
     }
*************************************************************************/
function cmContainsCharsOnly(obj,chars) {
    for (var inx = 0; inx < obj.value.length; inx++) {
       if (chars.indexOf(obj.value.charAt(inx)) == -1)
           return false;
    }
    return true;
}

/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¾ËÆÄºªÀÎÁö Ã¼Å©
*************************************************************************/
function cmIsAlphabet(obj) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¾ËÆÄºª ´ë¹®ÀÚÀÎÁö Ã¼Å©
*************************************************************************/
function cmIsUpperCase(obj) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¾ËÆÄºª ¼Ò¹®ÀÚÀÎÁö Ã¼Å©
*************************************************************************/
function cmIsLowerCase(obj) {
    var chars = "abcdefghijklmnopqrstuvwxyz";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ª¿¡ ¼ýÀÚ¸¸ ÀÖ´ÂÁö Ã¼Å©
*************************************************************************/
function cmIsNumber(obj) {
    var chars = "0123456789";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*************************************************************************/
function cmIsAlphaNum(obj) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¼ýÀÚ,´ë½Ã(-)·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*************************************************************************/
function cmIsNumDash(obj) {
    var chars = "-0123456789";
    return cmContainsCharsOnly(obj,chars);
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¼ýÀÚ,ÄÞ¸¶(,)Á¡(.)À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*************************************************************************/
function cmIsNumComma(obj) {
    var chars = ".,0123456789";
    return cmContainsCharsOnly(obj,chars);
}

/************************************************************************
¡á ÀÔ·Â°ªÀÌ ¼ýÀÚ,ÄÞ¸¶(,)Á¡(-)À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
*************************************************************************/
function cmIsNumDashComma(obj) {
    var chars = "-,0123456789";
    return cmContainsCharsOnly(obj,chars);
}

/************************************************************************
¡á ÀÔ·Â°ªÀÌ »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Æ÷¸Ë Çü½ÄÀÎÁö Ã¼Å©
ÀÚ¼¼ÇÑ format Çü½ÄÀº ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ 'regular expression'À» ÂüÁ¶
*************************************************************************/
function cmIsValidFormat(obj,format) {
    if (obj.value.search(format) != -1) {
        return true; //¿Ã¹Ù¸¥ Æ÷¸Ë Çü½Ä
    }
    return false;
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ÀÌ¸ÞÀÏ Çü½ÄÀÎÁö Ã¼Å© 1:OK, 0:NO, -1:hanmail
*************************************************************************/
function cmIsValidEmail(obj) {
	var retValue;
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

    retValue = cmIsValidFormat(obj,format);
    
    if(retValue == true){

	    return 1;
    }
	else{
		return 0;
	}
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ÀÌ¸ÞÀÏ Çü½ÄÀÎÁö Ã¼Å© 1:OK, 0:NO, -1:hanmail
*************************************************************************/
function cmIsValidEmail2(obj) {
	var retValue;
	var hmailString = "hanmail.net"
	var hmailChk = "";
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

    retValue = cmIsValidFormat(obj,format);
    
    if(retValue == true){

	    for (var i = 0; i < obj.value.length; i++){
	    	for(var j=0; j<hmailString.length; j++){

				if (hmailString.charAt(j).indexOf(obj.value.charAt(i).toLowerCase()) != -1){
		     		 hmailChk = true; 	
				}
				else{

					hmailChk = false;

				}
			}
	    }
	    
	    if (hmailChk == false){
	     	return 1;
	    }
		else{
			return -1;
		}

    }
	else{
		return 0;
	}
}
/************************************************************************
¡á ÀÔ·Â°ªÀÌ ÀüÈ­¹øÈ£ Çü½Ä(¼ýÀÚ-¼ýÀÚ-¼ýÀÚ)ÀÎÁö Ã¼Å©
*************************************************************************/
function cmIsValidPhone(obj) {
    var format = /^(\d+)-(\d+)-(\d+)$/;
    return cmIsValidFormat(obj,format);
}