

//----------------------------//
//*----- Àü¿ª º¯¼ö ¼±¾ð -----*//
//----------------------------//

//*----- ÇÁ·¹ÀÓ ¿µ¿ª °ü·Ã Àü¿ª º¯¼ö -----*//

var ncDoc;				// document ÂüÁ¶




var isESC 	= false;		// ESC Å° ÇÁ·¹½º ¿©ºÎ
var isOpened 	= false;
var countESC 	= 0;

var MyObj 	= new Object;		// ÀÌº¥Æ® ½ºÅ¸ÀÏ Àû¿ëÀ» À§ÇÑ Àü¿ªº¯¼ö form
var ncImgAuth;
var rClick_func = "";			// ¿À¸¥ÂÊ ¸¶¿ì½º Å¬¸¯½Ã È£ÃâÇÑ »ç¿ëÀÚ ÇÔ¼ö¸í
var posX;				// ¿À¸¥ÂÊ ¸¶¿ì½º Å¬¸¯½Ã ¸¶¿ì½ºÀÇ X ÁÂÇ¥
var posY;				// ¿À¸¥ÂÊ ¸¶¿ì½º Å¬¸¯½Ã ¸¶¿ì½ºÀÇ Y ÁÂÇ¥



//document.onkeydown = sub_CtrlPress;
//document.onmousedown = sub_LockDown;



//*----- ÀÌº¥Æ® ½ºÅ¸ÀÏ °ü·Ã ÇÔ¼ö(Frm ÇÊ¼ö) -----*//
var strDateSeparate = "-";
var errColor = "yellow";

function ncFrm_Style()
{
	var colFrm = document.all.tags("FORM");
	var colImg = document.all.tags("IMG");

	var oFrm;
	var oEl;
	var strFormat;

//	ncFrm_Timeout();

	for(var i=0; i<colImg.length; i++)
		colImg[i].setAttribute("align","absbottom");

	for( var k=0; k<colFrm.length; k++)
	{
		//colFrm[k].onreset = sub_EvtReset;
		if( typeof( colFrm[k].getAttribute("setMask") ) != "undefined" )
		{
			oFrm = colFrm[k];
			for(var i=0; i<oFrm.length; i++)
			{
				oEl = oFrm.elements[i];
				strFormat = oEl.getAttribute("format");
				switch( oEl.className) {
					case "iNum" :
					case "iNum3D" :
					case "iNumB" :
						sub_ChkNumFormat(oEl);
						break;
					case "iDate" :
					case "iDate3D" :
					case "iDateB" :
						sub_ChkDateFormat(oEl);
						break;
					case "iTime" :
					case "iTime3D" :
					case "iTimeB" :
						sub_ChkTimeFormat(oEl);
						break;
					case "iSsn" :
					case "iSsn3D" :
					case "iSsnB" :
						oEl.setAttribute("maxlength", "14", 0);
						break;
					case "iMask" :
					case "iMask3D" :
					case "iMaskB" :
						strFormat = oEl.getAttribute("format");
						oEl.setAttribute("maxlength", strFormat.length, 0);
						break;
				}

				switch( oEl.className )
				{
					case "iNum"	:
					case "iNum3D"	:
					case "iNumB"	:
					case "iFull"	:
					case "iFull3D"	:
					case "iFullB"	:
					case "iHan"	:
					case "iHan3D"	:
					case "iHanB"	:
					case "iDate"	:
					case "iDate3D"	:
					case "iDateB"	:
					case "iTime"	:
					case "iTime3D"	:
					case "iTimeB"	:
					case "iDigit"	:
					case "iDigit3D"	:
					case "iDigitB"	:
					case "iSsn"	:
					case "iSsn3D"	:
					case "iSsnB"	:
					case "iStr"	:
					case "iStr3D"	:
					case "iStrB"	:
					case "iMask"	:
					case "iMask3D"	:
					case "iMaskB"	:
						oEl.ffocus	= oEl.onfocus;
						oEl.fblur	= oEl.onblur;
						oEl.fkeyPress	= oEl.onkeypress;
						oEl.fkeyUp	= oEl.onkeyup;
						oEl.onfocus	= sub_EvtFocus;
						oEl.onblur	= sub_EvtBlur;
						oEl.onkeypress	= sub_EvtKeyPress;
						oEl.onkeyup	= sub_EvtKeyUp;
						break;
				}
			}
		}
	}

	//*********************************************************************
	// Method	: String.rightTrim
	// Purpose	: Trims trailing whitespace chars
	// Inputs	: None
	// Returns	: String
	//*********************************************************************
	String.prototype.rightTrim = function (){
		var objRegExp = /^([\w\W]*)(\b\s*[¡¡]*[ ]*)$/;
		if(objRegExp.test(this))
		{
			return this.replace(objRegExp,'$1');
		}
		return this;
	}

	//*********************************************************************
	// Method	: String.leftTrim
	// Purpose	: Trims leading whitespace chars
	// Inputs	: None
	// Returns	: String
	//*********************************************************************
	String.prototype.leftTrim = function (){
		var objRegExp = /^(\s*[¡¡]*)(\b[\w\W]*)$/;
		if(objRegExp.test(this))
		{
			return this.replace(objRegExp,'$2');
		}
		return this;
	}

	//*********************************************************************
	// Method	: String.trim
	// Purpose	: Removing leading and trailing space.
	// Inputs	: None
	// Returns	: String
	//*********************************************************************

	String.prototype.trim = function (){
		var objRegExp = /^(\s*[¡¡]*[ ]*)$/;
		if(objRegExp.test(this))
		{
			var strValue = this.replace(objRegExp,'');
			if( strValue.length == 0 ) return strValue;
		}

		objRegExp = /^(\s*[¡¡]*[ ]*)([\w\W]*)(\b\s*[¡¡]*[ ]*$)/;
		if(objRegExp.test(this))
		{
			return this.replace(objRegExp,'$2');
		}

		return this;
	}

	//*********************************************************************
	// Method	: String.trimAll
	// Purpose	: Removing all space.
	// Inputs	: None
	// Returns	: String
	//*********************************************************************
	String.prototype.trimAll = function (){
		var objRegExp = /\s+|\s+$|¡¡| /g;
		if(objRegExp.test(this))
		{
			return this.replace(objRegExp,'');
		}

		return this;
	}

	//*********************************************************************
	// Method	: String.specialChr
	// Purpose	: Special Chracter Replace
	// Inputs	: None
	// Returns	: String
	//*********************************************************************
	String.prototype.specialChr = function ()
	{
		var objRegExp = /\"|\&|\+|\'|\<|\>/g;
		var retStr    = this;

		if(objRegExp.test(this))
		{
			retStr = this.replace(/\"/g,'%22');
			retStr = this.replace(/\&/g,'%26');
			retStr = this.replace(/\+/g,'%2B');
			retStr = this.replace(/\'/g,'%27');
			retStr = this.replace(/\</g,'%26lt');
			retStr = this.replace(/\>/g,'%26gt');
		}

		return retStr;
	}

	//*********************************************************************
	// Method	: String.toInt
	// Purpose	: String to Integer
	// Inputs	: None
	// Returns	: Integer
	//*********************************************************************
	String.prototype.toInt = function ()
	{
		var objRegExp = /,/g;
		var retStr    = this;

		if(objRegExp.test(this))
		{
			retStr = this.replace(objRegExp,"");
		}

		return parseInt(retStr,10);
	}

	//*********************************************************************
	// Method	: String.toFloat
	// Purpose	: String to Float
	// Inputs	: None
	// Returns	: Float
	//*********************************************************************
	String.prototype.toFloat = function ()
	{
		var objRegExp = /,/g;
		var retStr    = this;

		if(objRegExp.test(this))
		{
			retStr = this.replace(objRegExp,"");
		}

		return parseFloat(retStr);
	}
}

//*----- ÀÔ·Â ÇÊµå / ÀÐ±âÀü¿ë ÇÊµå ¸®¼Â -----*//
function ncFrm_ResetField(argObj, argClass)
{
	if (argClass.substr(0,1)=="i"){		//ÀÔ·ÂÇÊµå
		argObj.readOnly = false
		argObj.disabled = false
	}
	else if (argClass.substr(0,1)=="r"){	//ÀÐ±âÀü¿ëÇÊµå
		argObj.readOnly = true
		argObj.disabled = true
	}
	else {
		alert("Class ¼³Á¤ÀÌ ¾ÈµÇ¾ú½À´Ï´Ù.")
		return;
	}
	argObj.className = argClass
}

function ncFrm_ResetAllField(argObj, argClass){
	for (var i=0; i<argObj.length; i++)
		ncFrm_ResetField(argObj[i], argClass)
}

//------------------------------------------//
//*----- °øÅë ¹× SUB Window °ü¸® ÇÔ¼ö -----*//
//------------------------------------------//



//*====================================================================
// Function	: errProcess
// Purpose	: Error Handler
// Inputs	: Input Object
// Returns	: false
//*====================================================================
function errProcess( argEl )
{
	argEl.style.backgroundColor = errColor;
	argEl.value = "";
	argEl.focus();
	return(false);
}

//-----------------------------------------------//
//*----- °ü¸®ÀÚ »ç¿ë ÇÔ¼ö (prefix : sub_ ) -----*//
//-----------------------------------------------//



function sub_ChkNumFormat(oEl)
{
	var max;
	var strFormat = oEl.getAttribute("format");
	var val;
	var rest;

	if( strFormat == null || strFormat == "") {
		max = oEl.getAttribute("maxlength");
		val = Math.floor(max / 3);
		rest = max % 3;
		if(rest != 0)
			oEl.setAttribute("maxlength", max + val, 0);
		else
			oEl.setAttribute("maxlength", max + val - 1, 0);

		oEl.value = "0";
	} else {
		var decNum = strFormat.substr(0,2) - 0;
		var floatNum = strFormat.substr(2,2) - 0;

		max = decNum - floatNum;
		val = Math.floor(max / 3);
		rest = max % 3;

		if(rest != 0)
			oEl.setAttribute("maxlength", max + val + 1 + floatNum, 0);
		else
			oEl.setAttribute("maxlength", max + val + floatNum, 0);

		var temp = "";

		for(var i=0; i<floatNum; i++) temp += "0";

		oEl.value = "0." + temp;
	}
}

function sub_ChkTimeFormat(oEl) {
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");

	switch(strFormat) {
		case "H" :
		case "M" :
		case "S" :
			oEl.setAttribute("maxlength", "2", 0);
			break;
		case "HM" :
			oEl.setAttribute("maxlength", "5", 0);
			break;
		default :
			oEl.setAttribute("maxlength", "8", 0);
	}
}

function sub_ChkDateFormat(oEl) {

	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var len;

	switch(strFormat) {
		case "Y" 	:
		case "Y_0"	: len = "4"; break;
		case "M" 	:
		case "D" 	:
		case "M_0" 	:
		case "D_0" 	: len = "2"; break;
		case "YM" 	:
		case "YM_0" 	: len = "7"; break;
		case "DM" 	: len = "5"; break;
		case "0"	:
		default 	: len = "10";
	}

	oEl.setAttribute("maxlength", len, 0);
}

function sub_EvtFocus()
{
	var oEl		= event.srcElement;
	var strClass	= oEl.className;
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var strValue	= oEl.value.trim();
	var strFilter	= "";

	switch( strClass )
	{

	case "iDate"	:
	case "iDate3D"	:
	case "iDateB"	:
	case "iTime"	:
	case "iTime3D"	:
	case "iTimeB"	:
	case "iSsn"	:
	case "iSsn3D"	:
	case "iSsnB"	:
			oEl.style.imeMode = "disabled";
			break;
	case "iMask"	:
	case "iMask3D"	:
	case "iMaskB"	:
	case "iNum"	:
	case "iNum3D"	:
	case "iNumB"	:
	case "iStr"	:
	case "iStr3D"	:
	case "iStrB"	:
		//oEl.style.imeMode = "active"; break;
			oEl.style.imeMode = "inactive"; break;
	case "iDigit"	:
	case "iDigit3D"	:
	case "iDigitB"	:
			oEl.style.imeMode = "disabled";
			break;

	case "iFull"	:
	case "iFull3D"	:
	case "iFullB"	:
			//topSpace.document.all.IMECtrl.Conv('F'); break;
	case "iHan"	:
	case "iHan3D"	:
	case "iHanB"	:
			oEl.style.imeMode = "active";
			//topSpace.document.all.IMECtrl.Conv('H');
			break;
	}

	if( strFilter != "" && strValue != "" )
	{
		if( (strClass == "iDigit" || strClass == "iDigit3D" || strClass == "iDigitB") && strFormat == "0" )
		{
			var oRegExp	= new RegExp(strFilter);
			strValue	= strValue.replace(oRegExp, '$2');
		}
		else
		{
			var oRegExp	= new RegExp(strFilter,"g");
			strValue	= strValue.replace(oRegExp, "");
		}

		//*******************************************
		// Remove Mask
		//*******************************************
		oEl.value = strValue;
	}
	oEl.select();

	//*******************************************
	// Perform Original onfocus event handler
	//*******************************************
	if( oEl.ffocus && oEl.ffocus() == false )
	{
		event.returnValue = false;
		return;
	}
}

function sub_EvtReset()
{
	event.cancelBubbl=true;
	event.returnValue=false;
}

function sub_EvtBlur()
{
	var oEl		= event.srcElement;
	var strClass	= oEl.className;
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var strValue	= oEl.value;

	if( strValue.trimAll() == "" ) {
		oEl.style.backgroundColor = "";
		return false;
	}

	switch( strClass )
	{
	case "iDate"	:
	case "iDate3D"	:
	case "iDateB"	:
			strValue = sub_DateValidation(oEl);
			if( strValue == null ) {
				errProcess(oEl);
				return false;
			}
			strValue = sub_MaskDate(strFormat, strValue);
			break;
	case "iTime"	:
	case "iTime3D"	:
	case "iTimeB"	:
			var oRegExp;

			switch(strFormat)
			{
			case "H" 	: oRegExp = /^([0-2][0-9])$/; break;
			case "M" 	:
			case "S" 	:
				oRegExp = /^([0-5][0-9])$/; break;
			case "HM" 	: oRegExp = /^([0-2][0-9]):([0-5][0-9])$/; break;
			default 	: oRegExp = /^([0-2][0-9]):([0-5][0-9]):([0-5][0-9])$/;
			}

			strValue = sub_MaskTime(strValue, strFormat);

			if( strValue != "" && !oRegExp.test(strValue) )
			{
				alert("½Ã°£ ÀÔ·Â ¿À·ùÀÔ´Ï´Ù!");
				errProcess(oEl);
				return false;
			}
			break;

	case "iSsn"	:
	case "iSsn3D"	:
	case "iSsnB"	:
			var oRegExp	= /^([0-9]{6})\-([0-9]{7})$/;
			strValue = sub_MaskSSN(strValue);

//			if( strValue != "" && !oRegExp.test(strValue) )
//			{
//				alert("ÁÖ¹Î¹øÈ£ ÀÔ·Â ¿À·ùÀÔ´Ï´Ù!");
//				errProcess(oEl);
//				return;
//			}
			break;
	case "iMask"	:
	case "iMask3D"	:
	case "iMaskB"	:
	//		strValue = sub_MaskCustom(strValue, strFormat);
			break;
	case "iNum"	:
	case "iNum3D"	:
	case "iNumB"	:

			if(strValue.indexOf(".") >= 0) {
				var strTmp;
				var len = parseInt(strFormat.substr(2,2));
				strTmp = strValue.split(".");
				if(strTmp[1].length > len) {
					strTmp[1] = strTmp[1].substr(0,len);
				}
				oEl.value = strTmp.join(".");

			}
			strValue = sub_MaskNumber(oEl);
			break;
	case "iDigit"	:
	case "iDigit3D"	:
	case "iDigitB"	:

			if( strFormat != "" )
			{
				var strMask	= "";
				var intMaskLen	= oEl.maxLength - strValue.length;

				for( var i=0; i<intMaskLen; i++ )
					strMask += strFormat;

				strValue = strMask + strValue;
			}
			break;
	case "iFull"	:
	case "iFull3D"	:
	case "iFullB"	:
			//topSpace.document.all.IMECtrl.Conv('N'); break;
	case "iHan"	:
	case "iHan3D"	:
	case "iHanB"	:
			//topSpace.document.all.IMECtrl.Conv('E'); break;
	}

	//*******************************************
	// Set Masked Value
	//*******************************************
	oEl.value = strValue;

	//*******************************************
	// Reset Error Color
	//*******************************************
	oEl.style.backgroundColor = ''

	//*******************************************
	// Perform Original onblur event handler
	//*******************************************
	if( oEl.fblur && oEl.fblur() == false )
	{
		event.returnValue = false;
		return;
	}
}

function sub_EvtKeyPress()
{
	var oEl		= event.srcElement;
	var strClass	= oEl.className;
	var strValue 	= oEl.value;
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var strFilter	= "";

	oEl.style.backgroundColor = '#DFDFDF'

	switch( strClass )
	{

	case "iSsn"	:
	case "iSsn3D"	:
	case "iSsnB"	:
	case "iDigit"	:
	case "iDigit3D"	:
	case "iDigitB"	:
	case "iTime"	:
	case "iTime3D"	:
	case "iTimeB"	:
	case "iDate"	:
	case "iDate3D"	:
	case "iDateB"	:
			strFilter = "[0-9]";
			break;
	case "iNum"	:
	case "iNum3D"	:
	case "iNumB"	:
			var isInteger	= ( strFormat.length == 4 )? false : true;

			if(strValue.indexOf(".") > 0) {
				var floatNum = strFormat.substr(2,2) - 0;
				var arrStr = strValue.split(".");
				//if( oEl.getAttribute("maxlength") > strValue.length && arrStr[1].length == floatNum) { return false;}
			}

			if(!isInteger && strValue.indexOf(".") < 0 && event.keyCode != 46) {
				var decNum = strFormat.substr(0,2) - 0;
				var floatNum = strFormat.substr(2,2) - 0;
				var diff = decNum - floatNum;
				var len = ((diff % 3) != 0)? diff + Math.floor((diff / 3)) : diff + (Math.floor(diff / 3) - 1);

				if(strValue.length == len) return false;
			}
			strFilter	= ( isInteger )? "[\\-(0-9)]" : "[\\-(0-9).]";
			break;
	case "iMask"	:
	case "iMask3D"	:
	case "iMaskB"	:

			var strTemp;

			if(strValue.length == strFormat.length)
				strTemp = strFormat.charAt(0);
			else
				strTemp = strFormat.charAt(oEl.value.length);

			if(strTemp == "-" || strTemp == "." || strTemp == ":" || strTemp == "_") return false;

			strFilter = (strTemp == "$") ? "[0-9a-zA-Z]" : "[0-9\\s]";
			break;
	}



	//*******************************************
	// Input Å¸ÀÔº° ÀÔ·Â µ¥ÀÌÅÍ¸¦ Á¦ÇÑÇÑ´Ù
	//*******************************************
	if( strFilter != "" )
	{
		var oRegExp = new RegExp(strFilter);
		var strKey;

		strKey	= String.fromCharCode(event.keyCode);
		if( strKey != "\r" && !oRegExp.test(strKey) ) {
			event.returnValue = false;
		}
		event.keyCode = strKey.charCodeAt(0);
	}

	//*******************************************
	// Perform Original onkeypress event handler
	//*******************************************
	if( oEl.fkeyPress && oEl.fkeyPress() == false )
	{
		event.returnValue = false;
		return;
	}
}

function sub_EvtKeyUp()
{
	if( strKeys.indexOf(event.keyCode+";") > -1 ) return;

	var oEl		= event.srcElement;
	var strClass	= oEl.className;
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var strValue	= oEl.value;

	switch( strClass )
	{

	case "iDate"	:
	case "iDate3D"	:
	case "iDateB"	:
			strValue = sub_MaskDate(strFormat, strValue); break;
	case "iTime"	:
	case "iTime3D"	:
	case "iTimeB"	:
			strValue = sub_MaskTime(strValue, strFormat); break;
	case "iNum"	:
	case "iNum3D"	:
	case "iNumB"	:
			var isInteger	= ( strFormat.length == 4 )? false : true;
			strValue	= ( isInteger )? sub_InsCommaInt(strValue) : sub_InsCommaFloat(strValue);
			break;
	case "iSsn"	:
	case "iSsn3D"	:
	case "iSsnB"	:
			strValue	= sub_MaskSSN(strValue); break;
	case "iMask"	:
	case "iMask3D"	:
	case "iMaskB"	:
			strValue	= sub_MaskCustom(strValue, strFormat); break;
	case "iStr"	:
	case "iStr3D"	:
	case "iStrB"	:

			if( strFormat != "" )
			{
				strValue = ( strFormat.toLowerCase() == "uppercase" )? strValue.toUpperCase() : strValue.toLowerCase();
			}

			break;
	default :
			sub_AutoSkip(oEl, strValue);
			if( oEl.fkeyUp && oEl.fkeyUp() == false )
				event.returnValue = false;
			return;
	}

	if(escape(strValue.substr(strValue.length - 1, 1)).substr(0,2) != "%u") oEl.value = strValue;

	//*******************************************
	// Perform AutoSkip
	//*******************************************
	sub_AutoSkip(oEl, strValue);



	//*******************************************
	// Perform Original onkeyup event handler
	//*******************************************
	if( oEl.fkeyUp && oEl.fkeyUp() == false )
	{
		event.returnValue = false;
		return;
	}

}

function sub_MaskCustom(argValue, argFormat) {

	argValue = argValue.toUpperCase();
	var strValue = "";
	var pos = 0;
	var tmp = "";

	for(var i=0; i<argValue.length; i++) {

		if(argValue.charAt(i) != "-" && argValue.charAt(i) != "." && argValue.charAt(i) != ":" && argValue.charAt(i) != "_") {
			tmp = argFormat.charAt(pos + 1);
			if(tmp == "-" || tmp == "." || tmp == ":" || tmp == "_") {
				strValue += argValue.charAt(i) + tmp;
				pos = pos + 2;
			} else {
				strValue += argValue.charAt(i);
				pos++;
			}
		}
	}

	return strValue;
}

function sub_DateValidation(argEl)
{
	var oEl		= argEl;
	var oForm	= oEl.form;
	var oRegExp	= new RegExp("\\" + strDateSeparate);
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format").toUpperCase();
	var strTmp	= oEl.value;

	while( oRegExp.test( strTmp ) )
	{
		strTmp	= strTmp.replace(oRegExp, "");
	}

	var intLen	= strTmp.length;

	switch( strFormat )
	{
	case "Y"	:
		if( intLen != 4 ) { alert("³âµµ(YYYY) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù."); return(null); }
		break;
	case "M"	:
	case "D"	:
		if( intLen > 2 )
		{
			var errMsg = ( strFormat == "M" )? "¿ù(MM) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù." : "ÀÏ(DD) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù.";
			alert(errMsg);
			return(null);
		}

		var oColl = window.document.all.tags("INPUT");
		var oEnum = new Enumerator(oColl);
		var index = 0;
		for (; !oEnum.atEnd(); oEnum.moveNext())
		{
			if ( oEnum.item() == oEl ) break;
			index++;
		}

		if( strFormat == "M" )
		{
			if( !sub_MonthValidation(strTmp.toInt()) ) return(null);
		}
		else
		{
			var intYear	= oColl[index-2].value.toInt();
			var intMM	= oColl[index-1].value.toInt();
			var intDD	= strTmp.toInt();

			if( !sub_DayValidation(intYear, intMM, intDD) ) return(null);
		}
		if( intLen == 1 ) strTmp = "0" + strTmp
		break;
	case "YM"	:
		if( intLen != 6 ) { alert("³â¿ù(YYYYMM) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù."); return(null); }
		if( !sub_MonthValidation(strTmp.substr(4,2).toInt()) ) return(null);
		break;
	case "DM"	:
		if( intLen != 4 ) { alert("ÀÏ¿ù(DDMM) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù."); return(null); }
		if( !sub_MonthValidation(strTmp.substr(2,2).toInt()) ) return(null);
		if( strTmp.substr(0,2).toInt() > 31) { alert("Á¸ÀçÇÏÁö ¾Ê´Â ³¯Â¥(DD) ÀÔ´Ï´Ù."); return(null);}
		break;
	case "0"	:
		var intYear	= strTmp.substr(0,4).toInt();
		var intMM	= strTmp.substr(4,2).toInt();
		var intDD	= strTmp.substr(6,2).toInt();

		if(intMM == 0) {
			if(intDD != 0) {
				alert("ÀÏÀÚ(DD) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù.");
				return(null);
			}
		} else {
			if(intDD != 0) {
				if( !sub_MonthValidation(intMM) ) return(null);
				if( !sub_DayValidation(intYear, intMM, intDD) ) return(null);
			}
		}

		break;
	default		:
		if( intLen != 8 ) { alert("ÀÏÀÚ(YYYYMMDD) ÀÔ·Â ¿À·ùÀÔ´Ï´Ù."); return; }

		var intYear	= strTmp.substr(0,4).toInt();
		var intMM	= strTmp.substr(4,2).toInt();
		var intDD	= strTmp.substr(6,2).toInt();

		if( !sub_MonthValidation(intMM) ) return(null);

		if( !sub_DayValidation(intYear, intMM, intDD) ) return(null);
		break;
	}

	return(strTmp);
}

function sub_MonthValidation(argIntMM)
{
	var oRegExp = ( argIntMM.toString().length == 1 )? /[1-9]/ : /(10)|(11)|(12)/;

	if( !oRegExp.test(argIntMM) )
	{
		alert("Á¸ÀçÇÏÁö ¾Ê´Â ³¯Â¥(MM) ÀÔ´Ï´Ù.");
		return(false);
	}
	return(true);
}

function sub_DayValidation(argIntYear, argIntMM, argIntDD)
{
	var intDateRange= 0;

	switch( argIntMM )
	{
	case 2	: intDateRange = (!(argIntYear % 4) && (argIntYear % 100) || !(argIntYear % 400)) ? 29 : 28; break;
	case 4	:
	case 6	:
	case 9	:
	case 11	: intDateRange = 30; break;
	default : intDateRange = 31; break;
	}

	if( argIntDD > intDateRange || argIntDD < 1 )
	{
		alert("Á¸ÀçÇÏÁö ¾Ê´Â ³¯Â¥(DD) ÀÔ´Ï´Ù.");
		return(false);
	}
	return(true);
}

function sub_MaskDate(argFormat, argValue)
{
	var oRegExp;
	var strTmp;

	argFormat = argFormat.toUpperCase();
	strTmp = argValue.replace(eval("/\\" + strDateSeparate + "/g"), "");

	if( argFormat == "Y" || argFormat == "M" || argFormat == "D")
	{
		return(strTmp);
	}
	else if( argFormat == "YM" )
	{
		oRegExp	= /([0-9]{4})([0-9]{0,2})/;
		strTmp	= strTmp.replace(oRegExp, "$1" + strDateSeparate + "$2");
	}
	else if( argFormat == "DM") {
		oRegExp	= /([0-9]{2})([0-9]{0,2})/;
		strTmp	= strTmp.replace(oRegExp, "$1" + strDateSeparate + "$2");
	}
	else
	{
		if( strTmp.length == 8 )
		{
			oRegExp	= /([0-9]{4})([0-9]{2})([0-9]{2})/;
			strTmp	= strTmp.replace(oRegExp, "$1" + strDateSeparate + "$2" + strDateSeparate + "$3");
		}
		else
		{
			oRegExp	= eval("/([0-9]{4})\\" + strDateSeparate + "?([0-9]{2})([0-9]{0,2})/");
			if( oRegExp.test(strTmp) )
			{
				strTmp	= strTmp.replace(oRegExp, "$1" + strDateSeparate + "$2" + strDateSeparate + "$3");
			}
			else
			{
				oRegExp	= eval("/([0-9]{4})\\" + strDateSeparate + "?([0-9]{0,2})/");
				strTmp	= strTmp.replace(oRegExp, "$1" + strDateSeparate + "$2");
			}
		}
	}

	return(strTmp);
}

function sub_MaskNumber(argEl)
{
	var oEl		= argEl;
	var strFormat	= ( oEl.getAttribute("format") == null )? "" : oEl.getAttribute("format");
	var isInteger	= ( strFormat.length == 4 )? false : true;

	if( !isInteger )
	{
		var strArr;
		var strInt;
		var strDec;
		var strVal	= oEl.value;
		var intDecLen	= strFormat.substr(2,2).toInt();
		var strExp	= ".[0-9]{" + intDecLen + "}"
		var oRegExp	= new RegExp(strExp);

		if( strVal.indexOf(".") > -1 )
		{
			strArr = strVal.split(".");
			strInt = strArr[0];
			strDec = "." + strArr[1];
		}
		else
		{
			strInt = strVal;
			strDec = ".";
		}

		while( !oRegExp.test(strDec) )
			strDec += "0";

		return(sub_InsCommaFloat(strInt + strDec));
	}
	else
		return(sub_InsCommaInt(oEl.value));
}

function sub_MaskTime(argValue, argFormat)
{
	var strValue = argValue.replace(/:/g, "");
	var oRegExp;

	switch(argFormat)
	{
		case "H" :
		case "M" :
		case "S" :
			oRegExp	= /(\d{2})/;
			strValue= strValue.replace(oRegExp, "$1");
			break;
		case "HM" :
			oRegExp	= /(\d{2})(\d{0,2})/;
			strValue= strValue.replace(oRegExp, "$1:$2");
			break;
		default :
			if( strValue.length == 6 )
			{
				oRegExp	= /(\d{2})(\d{0,2})(\d{0,2})/;
				strValue= strValue.replace(oRegExp, "$1:$2:$3");
			}
			else
			{
				oRegExp	= /:?(\d{2})(\d{0,2})/g;
				while( oRegExp.test(strValue) )
				{
					strValue = strValue.replace(oRegExp, "$1:$2")
				}
			}
	}

	return(strValue);
}

function sub_MaskSSN(argValue)
{
	var oRegExp	= /(\d{6})(\d{0,7})/;
	var strTemp	= argValue.replace("-", "");

	return(strTemp.replace(oRegExp, "$1-$2"));
}

function sub_InsCommaInt(argStr)
{

	var oRegExp	= /(-?[0-9]+)([0-9]{3})/;
	argStr		= argStr.toString().replace(/,/g, "");

	while( oRegExp.test(argStr) )
	{
		argStr = argStr.replace(oRegExp, "$1,$2");
	}

	return argStr;
}

function sub_InsCommaFloat(argStr)
{
	var strArr;
	var strInt;
	var strDec;

	argStr = argStr.toString();

	if( argStr.indexOf(".") > -1 )
	{
		strArr = argStr.split(".");
		strInt = strArr[0];
		strDec = "." + strArr[1];
	}
	else
	{
		strInt = argStr;
		strDec = "";
	}

	strInt = sub_InsCommaInt(strInt);
	return(strInt + strDec);
}

function sub_DelComma(argStr)
{
	var oRegExp	= /,/g;
	argStr		= argStr.toString();

	while( oRegExp.test(argStr) )
	{
		argStr = argStr.replace(oRegExp, "");
	}

	return argStr;
}


//*----- ³¯Â¥ Ã¼Å©(³â¿ùÀÏ ÇÕÃÄÁø ÇÊµå) -----*//
function sub_DateFull(argYear, argMonth, argDate){
//	±¸¹öÁ¯ : comDate_Chk(argYear, argMonth, argDate)

	if(isNaN(argYear) || isNaN(argMonth) || isNaN(argDate)) return false;

	cDate = new Array(29, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if(argMonth<1 || argMonth>12) return false;
	if(argDate<1 || argDate>cDate[argMonth]) {
		if(argMonth==2) {
			if(((argYear%4==0) && (argYear%100!=0)) || (argYear%400==0)) {
				if(argDate>=1 && argDate<=cDate[0]) return true;
			}
			else {
				if(argDate>=1 && argDate<=cDate[argMonth]) return true;
			}
		}
		return false;
	}
	return true;
}

//*----- ³¯Â¥ Ã¼Å©(³â¿ùÀÏ ºÐ¸®µÈ ÇÊµå) -----*//
function sub_DateSep(argDateCheck, argYear, argMonth){
//	±¸¹öÁ¯ : txtDate_Sub(argDateCheck, argYear, argMonth)
	src = event.srcElement
	switch (argDateCheck) {
	case "YM" :
		if (parseFloat(argMonth) > 12 || parseFloat(argMonth) < 1) {
			alert("Á¤È®ÇÑ ¿ùÀ» ÀÔ·ÂÇÏ¿© ÁÖ½Ê½Ã¿À.");src.value = "";src.focus()
		};
		break;
	case "M" :
		if (parseFloat(src.value) > 12 || parseFloat(src.value) < 1) {
			alert("Á¤È®ÇÑ ¿ùÀ» ÀÔ·ÂÇÏ¿© ÁÖ½Ê½Ã¿À.");src.value = "";src.focus()
		};
		break;
	case "D" :
		switch (parseFloat(argMonth)) {
		case 2 : dateRange = (!(argYear % 4) && (argYear % 100) || !(argYear % 400)) ? 29 : 28; break;
		case 4:
		case 6:
		case 9:
		case 11:  dateRange = 30; break
		default : dateRange = 31
		}
		if (parseFloat(src.value) > dateRange || parseFloat(src.value) < 1) {
			alert("Á¤È®ÇÑ ÀÏÀ» ÀÔ·ÂÇÏ¿© ÁÖ½Ê½Ã¿À.");src.value = "";src.focus()
		};
		break;
	default :
	}
	if (src.value.length == 1) src.value = "0" + src.value
}

//*--  ÇÊµå AutoSkip  --*//
//*====================================================================
// Function	: sub_AutoSkip
// Purpose	: ÀÔ·Â Ä¿¼­ ÀÚµ¿ ÀÌµ¿
// Inputs	: None
// Returns	: None
//*====================================================================

var strKeys = "8;16;46;37;38;39;40;33;34;35;36;45;229;21;27;17;18;20;91;"


function sub_AutoSkip(argEl, argValue)
{
	var arrEl = argEl.form.elements;

	if (argEl.getAttribute("end") != null || argEl.getAttribute("END") != null) return;

	if( (argValue == null) || (event.keyCode==13) ) return(false);

	//*******************************************
	// ¹æÇâÅ°´Â ¹«½ÃÇÑ´Ù
	//*******************************************
	if( strKeys.indexOf(event.keyCode+";") > -1 ) return;

	if( argValue.length  >=  argEl.maxLength )
	{
		var i=0
		while( argEl != arrEl[i] )  i++

		if( (i+1) != arrEl.length )
		{
			while(  ( arrEl[i+1].type		== "hidden" )	||
				( arrEl[i+1].type		== "button" )	||
				( arrEl[i+1].type		== "checkbox" ) ||
				( arrEl[i+1].type		== "radio" )	||
				( arrEl[i+1].tagName		== "FIELDSET" ) ||
				( arrEl[i+1].tagName		== "OBJECT" )	||
				( arrEl[i+1].tagName		== "APPLET" )	||
				( arrEl[i+1].className.substr(0,1) == "r"  )	||
				( arrEl[i+1].style.display	== "none" )	||
				( arrEl[i+1].style.visibility	== "hidden" )	||
				( arrEl[i+1].disabled		== true )  )
			{
				i++
				if( (i+1) == arrEl.length ) return;
			}
		}
		else
		{
			arrEl[i].focus();
			return(false);
		}

		arrEl[i+1].focus();

		var strTagName = arrEl[i+1].tagName;
		if( strTagName != "SELECT")
		{
			arrEl[i+1].select();
		}
		else if( strTagName == "SELECT" )
		{
			if( arrEl[i+1].value == null || arrEl[i+1].selectedIndex == -1 )
    				arrEl[i+1].value = "";
		}
	}
}

//*--  °øÅëÈ­¸é drag °ü·Ã --*//

function sub_MouseMoveCom() {

	if ((1 == event.button) && (elDragged != null)) {
		var intTop = event.clientY + document.body.scrollTop;
		var intLeft = event.clientX + document.body.scrollLeft;

		var intLessTop  = 0;
		var intLessLeft = 0;
		var elCurrent = elDragged.offsetParent;

		while (elCurrent.offsetParent != null) {
			intLessTop += elCurrent.offsetTop;
			intLessLeft += elCurrent.offsetLeft;
			elCurrent = elCurrent.offsetParent;
		}

		var mTop = parseInt(selfWin.style.top)
		var mLeft = parseInt(selfWin.style.left)

		selfWin.style.top = mTop + intTop  - intLessTop - elDragged.y
		selfWin.style.left = mLeft + intLeft - intLessLeft - elDragged.x

		event.returnValue = false;
	}
}

function sub_CheckDrag(elCheck) {
	while (elCheck != null) {
		if ( elCheck.className.substr(0,9) =="sComTitle")
			return elCheck;
		elCheck = elCheck.parentElement;
	}
	return null;
}

function sub_MouseDownCom() {

	var elCurrent = sub_CheckDrag(event.srcElement);


	if (null != elCurrent) {
		elDragged = elCurrent;
		elDragged.x = event.offsetX;
		elDragged.y = event.offsetY;

		var op = event.srcElement;

		if ((elDragged != op.offsetParent) && (elDragged != event.srcElement)) {
			while (op != elDragged) {
				elDragged.x += op.offsetLeft;
				elDragged.y += op.offsetTop;
				op = op.offsetParent;
			}
		}
	}
}

function sub_SelectCom() {
	return (null == sub_CheckDrag(event.srcElement) && (elDragged!=null));
}

function sub_MouseUpCom() {
	var TOP = parseInt(selfWin.style.top);
	if (TOP < 0) {
		selfWin.style.top = 0;
	}
	if (TOP > 444) {
		selfWin.style.top = 425;
	}
	var LEFT = parseInt(selfWin.style.left);
	if (LEFT > 744 ) {
		selfWin.style.left = 707;
	}
	if (LEFT < -5 ) {
		selfWin.style.left = 0;
	}

	elDragged = null;
}

function sub_Wheel() {
	var obj = event.srcElement;
	if (event.wheelDelta >= 120) {
		obj.scrollUp();
	}
	else if (event.wheelDelta <= -120) {
		obj.scrollDown();
	}
}

// ´Þ·Â °ü·Ã Ãß°¡
	function date_picker(theObj) {
		var varDate,varFeature;
		varFeature = "dialogWidth:265px;dialogHeight:320px;scroll:no;status:no;resizable:no;help:no";
		//varFeature = "resizable=no,scrollbars=no,status=0,dialogWidth=265px,dialogHeight=280px";
		
		varDate = window.showModalDialog("/js/datewin.htm","myCalendar",varFeature);			
		if(varDate != "" && varDate != null )
			theObj.value = varDate;
	}	


	function date_picker01(theObj, begda1) {
		var varDate,varFeature;
		varFeature = "dialogWidth:265px;dialogHeight:320px;scroll:no;status:no;resizable:no;help:no";
		//varFeature = "resizable=no,scrollbars=no,status=0,dialogWidth=265px,dialogHeight=280px";
		varDate = window.showModalDialog("/js/datewin.htm","myCalendar",varFeature);			
		if(varDate != "" && varDate != null )
			if ( begda1 == varDate ) {
			  alert("µ¿ÀÏÇÑ ³¯Â¥¸¦ ÀÔ·ÂÇÏ½Ç ¼ö ¾ø½À´Ï´Ù");
			  theObj.focus();
			  return;  
			}
			if ( begda1.substring(0,4)  != varDate.substring(0,4) ) {
			  alert("¿ÃÇØ ÄõÅÍ´Â ´çÇØ³âµµ¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.");
			  return;  
			}
			theObj.value = varDate;
	}	

// ´Þ·Â °ü·Ã Ãß°¡
	function date_picker_vaca(vaca_month) {
		var varDate,varFeature;
		varFeature = "dialogWidth:265px;dialogHeight:320px;scroll:no;status:no;resizable:no;help:no";
		document.f.vaca_mon.value=vaca_month;
		var obj=document.f;
		varDate = window.showModalDialog("/js/datewin_vaca.htm",obj,varFeature);			
	}	
