<!--

//
//  ===============================================================================================
//  Function Name : gf_onlyNumeric(myEvent)
//  Description   : 입력 필드에 숫자만 허용
//  myEvent		  : myEvent 객체 (함수 호출할 때 event로 지정한다.)
//	return 		  : { true | false }
//  사용예        : <input type=text ... onKeyPress="return gf_onlyNumeric(event)">
//  ===============================================================================================
function gf_onlyNumeric(myEvent) {
    var _key = (document.layers) ? myEvent.which : myEvent.keyCode;  //netscape or not
    if (((_key >= 48) && (_key <= 57)) || _key==13) return true;
    else return false;
}

//
//  ===============================================================================================
//  Function Name : gf_onlyNumericDot(myEvent)
//  Description   : 입력 필드에 숫자 및 +-., 만 허용
//  myEvent		  : myEvent 객체 (함수 호출할 때 event로 지정한다.)
//	return 		  : { true | false }
//  사용예        : <input type=text ... onKeyPress="return gf_onlyNumericDot(event)">
//  ===============================================================================================
function gf_onlyNumericDot(myEvent) {
    var _key = (document.layers) ? myEvent.which : myEvent.keyCode;  //netscape or not
    if (((_key >= 48) && (_key <= 57)) || _key==13 || ((_key >= 43) && (_key <= 46))) return true;
    else return false;
}

//
//  ===============================================================================================
//  Function Name : gf_getDigit(str)
//  Description   : 문자열에서 숫자만 가져오기
//  str           : 입력문자열
//	return 		  : { 숫자만있는 문자열 }
//  사용예        : gf_getDigit("1,234,567")
//  ===============================================================================================
function gf_getDigit(str) {
	var _str = "";
	for (var i=0 ; i<str.length ; i++) {
		if ( (str.charAt(i) >= "0") && (str.charAt(i) <= "9") ) _str += str.charAt(i);
	}
	return _str;
}

//
//  ===============================================================================================
//  Function Name : gf_getCommaStr(str,digit)
//  Description   : 콤마를 삽입하여 Currey문자열 만들어 준다.
//  str           : 숫자문자열
//  digit         : 콤마를 삽입할 자리수 (생략하면 3)
//	return        : { 콤마가 삽입된 문자열 }
//  사용예        : gf_getCommaStr("1234567")
//  ===============================================================================================
function gf_getCommaStr(str,digit) {
	if (digit+"" == "undefined") digit = 3;
	var count = 0;
	var _str = "";
	for (var i=(str.length-1) ; i>=0 ; i--) {
		if (count == digit) {
			_str = "," + _str;
			count = 0;
		}
		_str = str.charAt(i) + _str;
		count = count + 1;
	}
	return _str;
}

//
//  ===============================================================================================
//  Function Name : gf_getMaskedStr(str,mask)
//  Description   : 문자열을 마스크로 포맷하여 만들어 준다.
//  str           : 입력문자열
//  mask          : 마스크 포맷 (마스크는 #, 특수문자는 그대로)
//	return        : { 마스크로 포맷된 문자열 }
//  사용예        : gf_getMaskedStr("0626532879","062)653-2879")
//  ===============================================================================================
function gf_getMaskedStr(str, mask) {
	var sIndex = str.length - 1;
	var mIndex = mask.length - 1;
	var _str = "";

	while (mIndex >= 0 && sIndex >= 0) {
		if (mask.charAt(mIndex) == '#') {
			_str = str.charAt(sIndex) + _str;
			sIndex --;
			mIndex --;
		} else {
			_str = mask.charAt(mIndex) + _str;
			mIndex --;
		}
	}
	return _str;
}

//
//  ===============================================================================================
//  Function Name : gf_setComma(myObj,myEvent,digit)
//  Description   : 입력값에 콤마를 삽입하여 Currey문자열로 만들어 준다.
//  myObj    	  : input 객체 (함수 호출할 때 this 로 지정한다.)
//  myEvent		  : event 객체 (함수 호출할 때 event로 지정한다.)
//  digit         : 콤마를 삽입할 자리수 (생략하면 3)
//	return        : void
//  사용예        : gf_getCommaStr("1234567")
//  사용예        : <input type=text ... onKeyUp="gf_setComma(this,event)">
//  ===============================================================================================
function gf_setComma(myObj,myEvent,digit) {
	myObj.value = gf_getCommaStr(gf_getDigit(myObj.value),digit);
	if (window.event.keyCode != 13) myObj.focus();
}

//
//  ===============================================================================================
//  Function Name : gf_setMasked(myObj,myEvent,mask)
//  Description   : 입력 숫자열을 마스크로 포맷하여 만들어 준다.
//  myObj    	  : input 객체 (함수 호출할 때 this 로 지정한다.)
//  myEvent		  : event 객체 (함수 호출할 때 event로 지정한다.)
//  mask          : 마스크 포맷 (숫자마스크는 #, 특수문자는 그대로)
//	return        : void
//  사용예        : <input type=text ... onKeyUp="gf_setMasked(this,event,'###-####')">
//  ===============================================================================================
function gf_setMasked(myObj,myEvent,mask) {
	var _str = "";
	if (mask.length >= myObj.value.length) {
		_str = gf_getMaskedStr(gf_getDigit(myObj.value),mask);
		if (myEvent.keyCode != 13)	myObj.focus();
	} else {
		for(var i=0 ; i<mask.length ; i++) _str += myObj.value.charAt(i);
	}
	myObj.value = _str;
}

//
//  ===============================================================================================
//  Function Name : gf_autoTab(myObj,myEvent,len)
//  Description   : myObj 필드의 자동 탭 이동
//  myObj    	  : input 객체 (함수 호출할 때 this 로 지정한다.)
//  myEvent		  : event 객체 (함수 호출할 때 event로 지정한다.)
//  len			  : 자동 탭을 처리할 입력값의 길이 (생략하면 maxLength 값으로 인식)
//	return 		  : true
//  사용예        : <input type=text ... onKeyUp="gf_autoTab(this,event)">
//  ===============================================================================================
function gf_autoTab(myObj,myEvent,len) {
    var _key = (document.layers) ? myEvent.which : myEvent.keyCode;  //netscape or not
	var _filter  = (document.layers) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];  //netscape or not
	if (len+""=="undefined") len = myObj.maxLength;
	if (myObj.value.length >= len && !containsElement(_filter,_key)) {
		myObj.value = myObj.value.slice(0, len);
		myObj.form[getNextIndex(myObj)].focus();
	}
	function containsElement(filter, keyCode) {
		var found = false, index = 0;
		while (!found && index < filter.length) {
			if (filter[index] == keyCode) found = true;
			else index++;
		}
		return found;
	}
	function getNextIndex(myObj) {
		var index = getIndex(myObj);
		for (++index ; index<myObj.form.length ; index++) {
			if ( (myObj.form[index].type != "hidden") && !(myObj.form[index].readOnly) && !(myObj.form[index].disabled) ) {
				break;
			}
		}
		return index % myObj.form.length;
	}
	function getIndex(myObj) {
		var index = -1, i = 0, found = false;
		while (i < myObj.form.length && index == -1) {
			if (myObj.form[i] == myObj) index = i;
			else i++;
		}
		return index;
	}
	return true;
}

//-->


