/*** Golbal Variable Declare START ***/
	var cgs_TagDelimit = '》';
	var cgs_SubDelimit = '▼';
	var cgs_RcdDelimit = '◈';
	var cgs_FldDelimit = '◇';

/*** Golbal Variable Declare END ***/
 
/*=======================================================================================
###common_string.js - String 관련 함수를 정의
###현재 정의되어 있는 함수 리스트###
- gf_Trim(as_str,as_gubun)- 스트링 외부만 공백제거(내부는 되지 않음)
- gf_Trim_Inner(as_str,as_gubun) - 스트링 내부까지 공백제거
- gf_CutSpecialChar(string as_str) - 문자열중간의 특수문자를 없애는 함수	
- gf_AUSpecialChar(string as_str) - 문자열중간의 특수문자를 없애는 함수	 - 저자일때 이용 , "," "." 스페이스 대체 
- gf_CutSpecialCharPlus(string as_str) - 문자열중간의 특수문자를 없애는 함수 - 더 추가되는것.	
- gf_Pos(dest, src, start): dest string에 src string이 존재하는가를 Check.
- gf_CharReplace(Str,BeforeChar,AfterChar): 문자열에서 특정 문자를 다른문자로 대치시키는 함수			
- Replace(string, src, dst): 특정문자 교체
- Char_Replace(Str,BeforeChar,AfterChar): 문자열에서 특정 문자를 다른문자로 대치시키는 함수			
- Char_Rep(Str,BeforeChar,BeforeChar1,AfterChar): 특정문자를 다른 문자로 대치시키는 함수 - 임시
- Str_Replace(TargetSourceString,BeforeChangeString,AfterChangeString): 문자열에서 특정 문자열을 원하는 문자열로 바꾸는함수
- Str_Replace2(TargetSourceString,BeforeChangeString,AfterChangeString,onetime): 문자열에서 특정 문자열을 원하는 문자열로 바꾸는 함수 두번째
- gf_SetSort(datasetobj,row,colid): 간략정보에서 header를 클릭했을때 sort
- gf_mod(a, b): 나머지를 구하는 함수 
- gf_check_null(item_var): Item의 NULL Check
- gf_StrDelStr(Lstr, Sstr): 특정문자 제거  
- OnlyOneSpace(TargetSourceString): 문자열에서 두개이상의 공백을 하나의 공백으로 처리
- gf_Getdd(yy, mm): 월별일자 가져오기 
- gf_check_date(objValue): 일자입력시 Check
- gf_get_time(): 현재의 시간을 리턴하는 함수
- gf_get_date(year, month): 임의년월을 가지고 오는 함수
- gf_get_today(): 현재일자을 가지고 오는 함수
- gf_DelSpecialChar(value): 특수문자 제거  
- gf_AllTokenDelete( value, token ): gf_AllTokenDelete(); '+' token 중복 제거
- gf_DelDoubleSpace( inputStr )
- gf_IsOperator( op ): 연산자 확인
- gf_IsDoubleOperator( query ): 연산자 중복 확인
- gf_WordCheck(TargetSourceString,BeforeChangeString,AfterChangeString): 
- gf_CheckNumber(string) : 숫자인지 Check
=========================================================================================*/


/*=======================================================================================
	기  능 : TRIM
	인  수 : count  - 필요한 SPACE 갯수
	         gugubn - 'r'-> RIGHT TRIM 'l'->LEFT TRIM 'a'-> ALL TRIM
	RETURN : as_str - Trim된 STRING
	
	2008.10.15 
	as_str  로 긴 문장이 왔을 경우는 문장이 짤리는 현상이 발생하여 함수를 변경 함.
	
=========================================================================================*/
function gf_Trim(as_str,as_gubun) { 

	if (as_gubun == 'r') {
		as_str = RTrim(as_str);
	} else if (as_gubun == 'l') {
		as_str = LTrim(as_str);
	} else if (as_gubun == 'a') {
		as_str = Trim(as_str);
	} else {
		as_str = as_str;
	}
	
	return as_str;
}

	function LTrim(str) {
		var whitespace = new String(" \t\n\r");
	    var s = new String(str);
	    if (whitespace.indexOf(s.charAt(0)) != -1) {
	    	var j=0, i = s.length;
	        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
	           	j++;
	        s = s.substring(j, i);
	    }
	    return s;
	}

	function RTrim(str) {
		var whitespace = new String(" \t\n\r");
	    var s = new String(str);
	    if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
	    	var i = s.length - 1;
	        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
				i--;
			s = s.substring(0, i+1);
		}
	    return s;
	}
	
	function Trim(str) {
		return RTrim(LTrim(str));
	}	
	
/*

// trim 함수가 문제가 있어서 주석처리한 함수
function gf_Trim(as_str,as_gubun) { 

	var i=0;
	var dummy='';
	as_gubun = as_gubun.toLowerCase();
	
	if (as_str == null) return;
	if (as_gubun == 'r' || as_gubun == 'a') {
		for (i=as_str.length;i>=1;i--) {
			if (as_str.substr(i-1,1) != ' ') {
				as_str = as_str.substr(0,i);
				dummy='*';
				break;
			}
		}
		if (dummy == '') {as_str='';dummy=''};
	}

	if (as_gubun == 'l' || as_gubun == 'a') {
		for (i=1;i<=as_str.length;i++) {
			if (as_str.substr(i-1, 1) != ' ') {
				as_str = as_str.substr(i-1, 999);
				dummy='*';
				break;
			}
		}
		if (dummy == '') as_str='';
	}
	return(as_str);
}
*/

/*=======================================================================================
	기  능 : String내의 Space를 없앤다.( gbn : A-All Trim, L-Left Trim, R-Right Trim )
	인  수 : strSrc - 대상 string
		 gbn	- Trim 방법 
	RETURN : tmpSrc - Trim된 string
=========================================================================================*/
function gf_Trim_Inner(strSrc,gbn) {
		
		if(strSrc==null) return;  
		
		var i;
	        var tmpSrc = "",tmplen=0;
	        
	        switch ( gbn ) {
	        
	          case "A" :
	          case "a" :
	        
		    for (i = 0; i < strSrc.length; i++) 
			if (strSrc.charAt(i) != " ") 
			    tmpSrc = tmpSrc + strSrc.charAt(i);
			    
		    break;
			
		  case "L" :
  		  case "l" :
		  
		    for (i = 0; i < strSrc.length; i++) {
			if (strSrc.charAt(i) != " ") break
                        tmplen++;            			
                    }
	                 
		    tmpSrc = strSrc.substr(tmplen,strSrc.length - tmplen + 1);
		    
		    break;
		  
		  case "R" :
		  case "r" :
		    for (i = strSrc.length - 1; i >= 0  ; i--) {
			if (strSrc.charAt(i) != " ") break
                        tmplen++;            			
                    }
	                 
		    tmpSrc = strSrc.substr(0,strSrc.length - tmplen);
		    
		    break;
	        } 
	                 
		return tmpSrc;
}


/*----------------------------------------------------------------------------------------------*/
/* Function명 : gf_CutSpecialChar(string as_str)						*/
/* 설      명 : 문자열중간의 특수문자를 없애는 함수						*/
/*----------------------------------------------------------------------------------------------*/
function gf_CutSpecialChar(as_str) {
	var ls_SpecialChar = "`@#$%^_=\\;'{}[]<>?,.";			// Title 키워드에서 제거해야 할 특수문자( ~을 제외함)
	
	var ls_return=as_str, buf='';
	
	for (var i = 0; i < ls_SpecialChar.length;i++) {
		ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
		if (ls_SpecialChar.substr(i,1) == "\r" || ls_SpecialChar.substr(i,1) == "\n")
			ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
	}

	for (var i = 0; i < ls_return.length;i++) {
		if (ls_return.charCodeAt(i) == 10 || ls_return.charCodeAt(i) == 13) continue;
		buf += ls_return.charAt(i);
	}
	return (buf);
}


/*----------------------------------------------------------------------------------------------*/
/* Function명 : gf_AUSpecialChar(string as_str)													*/
/* 설      명 : 문자열중간의 특수문자를 없애는 함수	,	저자는 "," 과 "." 는 스페이스로 대체.						*/
/*----------------------------------------------------------------------------------------------*/
function gf_AUSpecialChar(as_str) {
	var ls_SpecialChar = "`@#$%^_=\\;'{}[]<>?";			// Title 키워드에서 제거해야 할 특수문자( ~을 제외함)
	
	var ls_return=as_str, buf='';

	for (var i = 0; i < ls_SpecialChar.length;i++) {
		ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
		if (ls_SpecialChar.substr(i,1) == "\r" || ls_SpecialChar.substr(i,1) == "\n")
			ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
	}

	for (var i = 0; i < ls_return.length;i++) {
		if (ls_return.charCodeAt(i) == 10 || ls_return.charCodeAt(i) == 13) continue;
		buf += ls_return.charAt(i);
	}
	
	//", " and "," and ". ", "." 는 스페이스로 대체함.
	buf = Str_Replace(buf, ", " , " ");
	buf = Str_Replace(buf, ". ", " ");
	buf = Str_Replace(buf, ",", " ");
	buf = Str_Replace(buf, ".", " ");

	return (buf);
}



/*----------------------------------------------------------------------------------------------*/
/* Function명 : gf_CutSpecialCharPlus(string as_str)						*/
/* 설      명 : 문자열중간의 특수문자를 없애는 함수	- 제거항목 더 추가되는것.					*/
/*----------------------------------------------------------------------------------------------*/
function gf_CutSpecialCharPlus(as_str) {
//	var ls_SpecialChar = "~`@#$%^_=\\;'{}[]<>?,.\":";			
	var ls_SpecialChar = "~`@#$%^_=\\;'{}[]<>?,.:";			

	var ls_return=as_str, buf='';
	
	for (var i = 0; i < ls_SpecialChar.length;i++) {
		ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
		if (ls_SpecialChar.substr(i,1) == "\r" || ls_SpecialChar.substr(i,1) == "\n")
			ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
	}

	for (var i = 0; i < ls_return.length;i++) {
		if (ls_return.charCodeAt(i) == 10 || ls_return.charCodeAt(i) == 13) continue;
		buf += ls_return.charAt(i);
	}
	return (buf);
}



/*----------------------------------------------------------------------------------------------*/
/* Function명 : gf_CutSpecialCharPlus(string as_str)						*/
/* 설      명 : 문자열중간의 특수문자를 없애는 함수	- 제거항목 더 추가되는것.					*/
/*----------------------------------------------------------------------------------------------*/
function gf_CutSpecialCharFront(as_str) {
	var ls_SpecialChar = "~`!@#$%^&*()_-=|\\:;\"'{}[]<>?,./ ";		// 전방일치에서 제거해야 할 특수문자( ~을 제외함)
	
	var ls_return=as_str, buf='';
	
	for (var i = 0; i < ls_SpecialChar.length;i++) {
		ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
		if (ls_SpecialChar.substr(i,1) == "\r" || ls_SpecialChar.substr(i,1) == "\n")
			ls_return = Char_Replace(ls_return, ls_SpecialChar.substr(i,1), '');
	}

	for (var i = 0; i < ls_return.length;i++) {
		if (ls_return.charCodeAt(i) == 10 || ls_return.charCodeAt(i) == 13) continue;
		buf += ls_return.charAt(i);
	}
	return (buf);
}




/*----------------------------------------------------------------------*/
/* Function명 : gf_Pos													*/
/* 작  성  자 : hwado													*/
/* 작  성  일 : 07.11.15												*/
/* 기      능 : dest string에 src string이 존재하는가를 Check.        	*/
/* 인      수 : dest 대상string                                      	*/
/*            : src  search string                                   	*/
/*            : start  시작위치	int                                  	*/
/* 리      턴 : int.													*/
/*----------------------------------------------------------------------*/
function gf_Pos(dest, src, start)
{
	var i=0;

	if (start > dest.length) return (0);
	if (src == cgs_TagDelimit) {
		i = dest.indexOf(src,start);
		if (i < 0)  return(-1);
		if ( dest.charAt(i+1) >= '0' && dest.charAt(i+1) <= '9') return(i);
		else {
			while(1) {
				i = dest.indexOf(cgs_TagDelimit,i+1);
				if ( i < 0 ) return(-2);
				if ( dest.charAt(i+1) >= '0' && dest.charAt(i+1) <= '9') return(i);
			}
		}
	}
	else if (src == cgs_SubDelimit) {
		i = dest.indexOf(src,start);
		if (i < 0)  return(-3);
		if ( ( dest.charAt(i+1) >= '0' && dest.charAt(i+1) <= '9') || 
		     ( dest.charAt(i+1) >= 'a' && dest.charAt(i+1) <= 'z') || 
		     ( dest.charAt(i+1) >= 'A' && dest.charAt(i+1) <= 'Z') ) return(i);
		else {
			while(1) {
				i = dest.indexOf(cgs_SubDelimit,i+1);
				if ( i < 0 ) return(-4);
				if ( ( dest.charAt(i+1) >= '0' && dest.charAt(i+1) <= '9') || 
				     ( dest.charAt(i+1) >= 'a' && dest.charAt(i+1) <= 'z') || 
				     ( dest.charAt(i+1) >= 'A' && dest.charAt(i+1) <= 'Z') ) return(i);
			}
		}
	}
	else {
		i = dest.indexOf(src,start);
		if (i < 0)  return(-5);
		return(i);
	}

	return(i);
}



//문자열에서 특정 문자를 다른문자로 대치시키는 함수			
function gf_CharReplace(Str,BeforeChar,AfterChar) {
	
	var AfterString='';
	for (cnt = 0; cnt < Str.length; cnt++) {
		switch(Str.charAt(cnt)) {
			case BeforeChar:
				AfterString+=AfterChar;
				break;
			default:
				AfterString+=Str.charAt(cnt);
				break;
		}
	}
	
	return AfterString;
}

/*---------------------------------------------------------------------------*/
/* FUNCTION : Replace(); 특정문자 교체                                       */
/*---------------------------------------------------------------------------*/
function Replace(string, src, dst)
{
    var str = string, words = "";

    if(string.indexOf(src) != -1)
    {
        words = str.split(src);
        str = words[0];

        for(i=1; i<words.length; i++)
        {
            str += dst + words[i];
        }
    }

    return str;
}


//문자열에서 특정 문자를 다른문자로 대치시키는 함수			
function Char_Replace(Str,BeforeChar,AfterChar) {
	
	var AfterString='';
	
	for (cnt = 0; cnt < Str.length; cnt++) {
		switch(Str.charAt(cnt)) {
			case BeforeChar:
				AfterString+=AfterChar;
				break;
			default:
				AfterString+=Str.charAt(cnt);
				break;
		}
	}
	
	return AfterString;
}

//특정문자를 다른 문자로 대치시키는 함수 - 임시
function Char_Rep(Str,BeforeChar,BeforeChar1,AfterChar) {
	
	var AfterString='';
	
	for (cnt = 0; cnt < Str.length; cnt++) {
		switch(Str.charAt(cnt)) {
			case BeforeChar:
				AfterString+=AfterChar;
				break;
			case BeforeChar1:
				AfterString+=AfterChar;
				break;
			default:
				AfterString+=Str.charAt(cnt);
				break;
		}
	}
	
	return AfterString;
}


//문자열에서 특정 문자열을 원하는 문자열로 바꾸는함수
function Str_Replace(TargetSourceString,BeforeChangeString,AfterChangeString) {
        var AfterString='';
        var While=1;
        var NextPos=0;
        var LeftString='';
        var RightString='';
        var StartPos=0;
        var StartString=BeforeChangeString.substr(0,1);
        var BeforeChangeStringLength=BeforeChangeString.length;

        while(While) {
		StartPos=TargetSourceString.indexOf(StartString,NextPos);
		if (StartPos == -1) return TargetSourceString;
                if(TargetSourceString.substr(StartPos,BeforeChangeStringLength)==BeforeChangeString) {
                        LeftString=TargetSourceString.substr(0,StartPos);
                        RightString=TargetSourceString.substr(StartPos+BeforeChangeString.length);
                        AfterString=LeftString+AfterChangeString+RightString;
			TargetSourceString = AfterString;
			NextPos=StartPos+1;
                        
                }
                else {
                        NextPos=StartPos+1;
                        if(NextPos>TargetSourceString.length) {
                                While=0;
                                AfterString=TargetSourceString;
                        }
                }
        }
        return AfterString;
}

//20011212 stkim add 
/*===================================================================================================================
	기  능 : 문자열에서 특정 문자열을 원하는 문자열로 바꾸는 함수 두번째
	인  수 : TargetSourceString : 전체대상문자열, BeforeChangeString : 바뀔대상문자열, AfterChangeString : 바뀐후문자열
				onetime : 처음 찾은 것만 변경
	RETURN : 바뀔대상문자열이 바뀐후문자열로 바뀐 전체대상문자열
=====================================================================================================================*/
function Str_Replace2(TargetSourceString,BeforeChangeString,AfterChangeString,onetime) {
	var AfterString='';  //반환값을 담고
    var While=1;
    var NextPos=0;		//포인터이동
    var LeftString='';
    var RightString='';
    var StartPos=0;
    var StartString=BeforeChangeString.substr(0,1).toUpperCase(); //키워드 첫자를 대문자로
    var BeforeChangeStringLength=BeforeChangeString.length;
    var Capital_TargetSourceString = TargetSourceString.toUpperCase();
    var Capital_BeforeChangeString = BeforeChangeString.toUpperCase();
    
	/*저널명 starts with로 검색을 할 때 onetime파라미터로 값이 넘어온다.
	처음 시작하는 글자만 색깔을 변경하기 위해서 onetime이라고 명명했다.*/
    if(onetime == null){
	    while(While) {
	        StartPos=Capital_TargetSourceString.indexOf(StartString,NextPos);
			//찾고자 하는 문자가 문자열에 없을 때
			if (StartPos == -1) return TargetSourceString;
			//찾고자 하는 문자가 문자열에 있을 때(첫글자)
	        //찾고자 하는 문자열이 문자열에 있을 때
	        if(TargetSourceString.substr(StartPos,BeforeChangeStringLength).toUpperCase()==Capital_BeforeChangeString) {
	    	    LeftString=TargetSourceString.substr(0,StartPos);
	            RightString=TargetSourceString.substr(StartPos+BeforeChangeString.length);
	            AfterString=LeftString+AfterChangeString+RightString;
				TargetSourceString = AfterString;
				Capital_TargetSourceString = AfterString.toUpperCase();
				NextPos=StartPos+AfterChangeString.length;
	        }
	        else {
	            NextPos=StartPos+1;
	        } //end-if
	    } //end-while
	}
	else {
		NextPos = 0;
		StartPos=Capital_TargetSourceString.indexOf(StartString,NextPos);
		//찾고자 하는 문자가 문자열에 없을 때
		if (StartPos == -1) return TargetSourceString;
        //찾고자 하는 문자가 문자열에 있을 때(첫글자)
        //찾고자 하는 문자열이 문자열에 있을 때
        if(TargetSourceString.substr(StartPos,BeforeChangeStringLength).toUpperCase()==Capital_BeforeChangeString) {
    	    LeftString=TargetSourceString.substr(0,StartPos);
            RightString=TargetSourceString.substr(StartPos+BeforeChangeString.length);
            AfterString=LeftString+AfterChangeString+RightString;
		}
    }
    return AfterString;
}


//#############################################################



var sortname = '';		//SORT대상 항목묭
var sortflag = '';		//SORT구분(올림(+),내림(-))
/*=======================================================================================
	기  능 : 간략정보에서 header를 클릭했을때 sort합니다.
	인  수 :
	RETURN : ls_result - 검색한 우편번호 및 주소
=========================================================================================*/
function gf_SetSort(datasetobj,row,colid) {

	if(row > 0 || colid=='No') return -1;
		
	if (colid==sortname) {
		if (sortflag =='+') {	sortflag = '-';	}
		else		    {	sortflag = '+';	}
	}
	else	{	sortflag = '+';	}

	datasetobj.SortExpr=sortflag+colid;
	sortname  = colid;
	datasetobj.Sort();
	datasetobj.ClearAllMark();
	datasetobj.rowposition = 1;
	datasetobj.markrows(1,1);
}



// 나머지를 구하는 함수 
function gf_mod(a, b) {
	var compSt = '';
	
	compSt = String(a / b);
	index = compSt.indexOf('.');
	
	if(index < 0) return true;
	
	return false;
}

// Item의 NULL Check
function gf_check_null(item_var) {
	if(item_var == '' || item_var == null) 
		return true;
	
	return false;
}

/*---------------------------------------------------------------------------*/
/* FUNCTION : gf_StrDelStr(); 특정문자 제거                                     */
/*---------------------------------------------------------------------------*/
function gf_StrDelStr(Lstr, Sstr)
{
    var str = "";
    var index = Lstr.indexOf( Sstr );

    if( index == -1 ) {
	    str = Lstr;
    }
    else {
        str = Lstr.substring(0, index) + Lstr.substring(index+Sstr.length, Lstr.length);
        str = gf_StrDelStr(str, Sstr);
    }

    return str;
}



//문자열에서 두개이상의 공백을 하나의 공백으로 처리
function OnlyOneSpace(TargetSourceString) {
	var AfterString='';
	
	for (cnt = 0; cnt < TargetSourceString.length; cnt++) {
		switch(TargetSourceString.charAt(cnt)) {
			case ' ':
				if(TargetSourceString.charAt(cnt+1)!=' ')
					AfterString+=TargetSourceString.charAt(cnt);
				break;
			default:
				AfterString+=TargetSourceString.charAt(cnt);
				break;
		}
	
	}

	return AfterString;
}


/*---------------------------------------------------------------------------*/
/* FUNCTION : Getdd(); 월별일자 가져오기                                     */
/*---------------------------------------------------------------------------*/
function gf_Getdd(yy, mm)
{
    month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

    if(mm == 2)
   {
    	if(((yy % 4 == 0) && (yy % 100 != 0)) || (yy % 400 == 0))
            month[1] = 29;
    	else
    	    month[1] = 28;
    }

    return month[mm - 1];
}



// 일자입력시 Check
function gf_check_date(objValue) {
	if(gf_check_null(objValue)) return true;
	
	var Year = objValue.substring(0, 4);
	var Mon = objValue.substring(4, 6);
	var Day = objValue.substring(6, 8);
	
	if(Year < '1971') 
		return false;
	else if(Mon < '01' || Mon > '12')
		return false;
	else if(Day < '01' || Day > '31')
		return false;
	
	switch (Mon) {
		case '01' :
		case '03' :
		case '05' :
		case '07' :
		case '08' : 
		case '10' :
		case '12' :
			return true;
			break;
			
		case '04' :
		case '06' : 
		case '09' : 
		case '11' :
			if(Day > '30')
				return false;
			else 
				return true;
			break;
			
		case '02' :
			if(Day > '29') 
				return false;
			else if(Day == '29') {
			
				if(! gf_mod(Year, '4')) 
					return false;
				else {
					if(! gf_mod(Year, '100')) 
						return true;
					else {
						if(! gf_mod(Year, '400'))
							return false;
						else 
							return true;
					}
				}
			}
			else 
				return true;
	}
}


// 현재일자을 가지고 오는 함수...
function gf_get_today() {
	var yy = '';
	var mon = '';
	var day = '';

	currdate = new Date();
	
	tmpyy = currdate.getYear();
	yy = (tmpyy > 99) ? tmpyy : 1900 + tmpyy;
	
	tmpmon = currdate.getMonth();
	if(tmpmon < 9) {
		mon = '0' + (tmpmon + 1);
	}
	else
		mon = tmpmon + 1;
		
	tmpday = currdate.getDate();
	if(tmpday < 10) 
		day = '0' + tmpday;
	else
		day = tmpday;
	
	return yy.toString()+mon.toString()+day.toString();
}

// 임의년월을 가지고 오는 함수...
function gf_get_date(year, month) {
	var yy = '';
	var mon = '';
	var day = '';

	currdate = new Date();
	
	tmpyy = currdate.getYear();
	yy = (tmpyy > 99) ? tmpyy : 1900 + tmpyy;
	yy = yy + year;
	
	tmpmon = currdate.getMonth();
	if(tmpmon < 10) {
		mon = '0' + (tmpmon + month + 1);
	}else {
		mon = tmpmon + month + 1;
		if ( mon > 12 ) {
			yy = yy + 1;
			mon = (mon - 12);
		}
	}
		
	tmpday = currdate.getDate();
	if(tmpday < 10) 
		day = '0' + tmpday;
	else
		day = tmpday;
			
	return yy.toString()+mon.toString()+day.toString();
}

//현재의 시간을 리턴하는 함수
function gf_get_time() {
	var hh = '';
	var mm = '';
	var tt = '';

	currtime = new Date();
	
	tmphh = currtime.getHours();
	hh = (tmphh < 10) ? '0' + tmphh : tmphh;
	
	tmpmm = currtime.getMinutes();
	mm = (tmpmm < 10) ? '0' + tmpmm : tmpmm;
			
	tmptt = currtime.getSeconds();
	tt = (tmptt < 10) ? '0' + tmptt : tmptt;
	
	return hh.toString()+mm.toString()+tt.toString();
}




/*---------------------------------------------------------------------------*/
/* FUNCTION : fDelSpecialChar(); 특수문자 제거                               */
/*---------------------------------------------------------------------------*/
function gf_DelSpecialChar(value)
{
    value = gf_AllTokenDelete( value, "++" );

    value = Replace( value,  "\n"                   ,  ""  );
    value = Replace( value,  ":"                    ,  " "  );
    value = Replace( value,  "\r"                   ,  ""  );
    value = Replace( value,  " +"                   ,  "+" );
    value = Replace( value,  "+ "                   ,  "+" );
    value = Replace( value,  " + "                  ,  "+" );

    value = Replace( value,  "++"                   ,  "+" );
    value = Replace( value,  "**"                   ,  "*" );
    value = Replace( value,  "??"                   ,  "?" );

    value = Replace( value,  String.fromCharCode(13),  ''  );
    value = Replace( value,  String.fromCharCode(10),  ''  );
    return value;
}


/*---------------------------------------------------------------------------*/
/* FUNCTION : gf_AllTokenDelete(); '+' token 중복 제거                         */
/*---------------------------------------------------------------------------*/
function gf_AllTokenDelete( value, token )
{
    while( 1 )
    {
        if( value.indexOf(token) != -1 )
            value = Replace( value, token, token.substring(0,1) );
        else break;
    }
    return value;
}


function gf_DelDoubleSpace( inputStr )
{
    var inx = 0;
    var rtnValue = "";

    for( inx=0; inx < inputStr.length; inx++ )
    {
        if( inputStr.charAt( inx   ) == ' ' &&
            inputStr.charAt( inx+1 ) == ' '  )
        {
            inx += 2;
        }
        else if( inputStr.charAt( inx   ) == ' ' &&
                 inputStr.charAt( inx+1 ) != ' '  )
        {
             rtnValue = rtnValue + '+';
        }
        else
        {
             rtnValue = rtnValue + inputStr.charAt(inx);
        }
    }

    return inputStr;
}


/*---------------------------------------------------------------------------*/
/* FUNCTION : fIsOperator(); 연산자 확인                                     */
/*---------------------------------------------------------------------------*/
function gf_IsOperator( op )
{
    var vsOperationKind = '+*?&|"';

    for( var i = 0; i < vsOperationKind.length; i++ )
    {
        if( op == vsOperationKind.charAt(i) )
            return true;
    }

    return false;
}
function gf_IsOperator2( op )
{
    var vsOperationKind = '+*?&|';

    for( var i = 0; i < vsOperationKind.length; i++ )
    {
        if( op == vsOperationKind.charAt(i) )
            return true;
    }

    return false;
}


/*---------------------------------------------------------------------------*/
/* FUNCTION : fIsDoubleOperator(); 연산자 중복 확인                          */
/*---------------------------------------------------------------------------*/
function gf_IsDoubleOperator( query )
{
    var inx = 0;

    for( inx = 0; inx < query.length; inx++ )
    {
        if( gf_IsOperator(query[inx]  ) == true &&
            gf_IsOperator(query[inx+1]) == true )    return true;
    }

    return false;
}
function gf_IsDoubleOperator( query )
{
    var inx = 0;

    for( inx = 0; inx < query.length; inx++ )
    {
        if( gf_IsOperator(query[inx]  ) == true &&
            gf_IsOperator(query[inx+1]) == true )    return true;
    }

    return false;
}function gf_IsDoubleOperator2( query )
{
    var inx = 0;

    for( inx = 0; inx < query.length; inx++ )
    {
        if( gf_IsOperator2(query[inx]  ) == true &&
            gf_IsOperator2(query[inx+1]) == true )    return true;
    }

    return false;
}

function gf_WordCheck(TargetSourceString,BeforeChangeString,AfterChangeString) {
        var AfterString='';
        var While=1;
        var NextPos=0;
        var LeftString='';
        var RightString='';
        var StartPos=0;
        var StartString=BeforeChangeString.substr(0,1);
        var BeforeChangeStringLength=BeforeChangeString.length;

	while(While) {
		StartPos=TargetSourceString.indexOf(StartString,NextPos);
		if (StartPos == -1)	return TargetSourceString;
		if(TargetSourceString.substr(StartPos,BeforeChangeStringLength)==BeforeChangeString) {
			var pWord=TargetSourceString.substr(StartPos-1,1);
			var nWord=TargetSourceString.substr(StartPos+BeforeChangeString.length,1);
		
			if((pWord=='-' || pWord==' ' || pWord=='(' || pWord==')') && (nWord=='-' || nWord==' ' || nWord=='(' || nWord==')')) {       	
				LeftString=TargetSourceString.substr(0,StartPos);
				RightString=TargetSourceString.substr(StartPos+BeforeChangeString.length);
				AfterString=LeftString+AfterChangeString+RightString;
				TargetSourceString = AfterString;
			}
			NextPos=StartPos+1;
		}
		else {
			NextPos=StartPos+1;
			if(NextPos>TargetSourceString.length) {
				While=0;
				AfterString=TargetSourceString;
			}
		}
	}
        return AfterString;
}

/*--------------------------------------------------
  기능   : Check Number RETURN T/F ( 소수점"."은 Number로 취급안함 )
  INPUT  : toCheck  -> check data
  RETURN : true  -> number ( "."이 포함안됨 )
           false -> not number
----------------------------------------------------*/
function gf_CheckNumber(toCheck)
{
     var chkstr = toCheck+"" ;
     var isNum = true ;

     if ( gf_CheckNull(toCheck) )
          return false;

     for (j = 0 ; isNum && (j < toCheck.length) ; j++)
     {
          if ((toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
          {
             if ( toCheck.substring(j,j+1) == "-" || toCheck.substring(j,j+1) == "+")
             {
                if ( j != 0 )
                {
                   isNum = false;
                }
             }
             else
       isNum = false;
     }
     }

     if (chkstr == "+" || chkstr == "-") isNum = false;

     return isNum;
}

/*--------------------------------------------------
  기능   : Check Null RETURN T/F
  INPUT  : check  data
  RETURN : true  -> NULL
           false -> NOT NULL
----------------------------------------------------*/
function gf_CheckNull( toCheck )
{
     var chkstr = toCheck + "";
     var is_Space = true ;

     if ( ( chkstr == "") || ( chkstr == null ) )
    return( true );

     for ( j = 0 ; is_Space && ( j < chkstr.length ) ; j++)
     {
      if( chkstr.substring( j , j+1 ) != " " )
         {
        is_Space = false ;
         }
     }
     return ( is_Space );
}


/*--------------------------------------------------
  기능   : 숫자여부 체크 (hwado@futureinfonet.com)
  INPUT  : check  data
  RETURN : true  -> 숫자
           false -> 숫자아님
----------------------------------------------------*/
// str은 0~9까지 숫자만 가능하다. 
function checkNumber(str) { 
    var flag=true; 
    if (str.length > 0) { 
        for (i = 0; i < str.length; i++) {  
            if (str.charAt(i) < '0' || str.charAt(i) > '9') { 
                flag=false; 
            } 
        } 
    } 
    return flag; 
} 


/*--------------------------------------------------
  기능   : 영문여부 체크 (hwado@futureinfonet.com)
  INPUT  : check  data
  RETURN : true  -> 영문
           false -> 영문아님
----------------------------------------------------*/
// str은 모두 소문자여야하고 첫글자는 영문이어야 한다. 영문과 0~9, -, _, ^는 허용한다. 
function CheckChar(str) { 
    strarr = new Array(str.length); 
    var flag = true; 
    for (i=0; i<str.length; i++) { 
        strarr[i] = str.charAt(i) 
        if (i==0) { 
            if (!((strarr[i]>='a')&&(strarr[i]<='z'))) { 
                flag = false; 
            } 
        } else { 
            if (!((strarr[i]>='a')&&(strarr[i]<='z')||(strarr[i]>='0')&&(strarr[i]<='9')||(strarr[i]=='-')||(strarr[i]=='_')||(strarr[i]=='^'))) { 
                flag = false; 
            } 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
} 

// str은 모두 영문소문자여야 한다. 
function CheckChar2(str) { 
    strarr = new Array(str.length); 
    var flag = true; 
    for (i=0; i<str.length; i++) { 
        strarr[i] = str.charAt(i) 
        if (!((strarr[i]>='a')&&(strarr[i]<='z'))) { 
            flag = false; 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
} 


/*--------------------------------------------------
  기능   : 메일유효성  체크 (hwado@futureinfonet.com)
  INPUT  : check  data
  RETURN : true  -> 유효
           false -> 오류
----------------------------------------------------*/
// 이메일 체크 
function CheckMail(strMail) { 
   /** 체크사항 
     - @가 2개이상일 경우 
     - .이 붙어서 나오는 경우 
     -  @.나  .@이 존재하는 경우 
     - 맨처음이.인 경우 
     - @이전에 하나이상의 문자가 있어야 함 
     - @가 하나있어야 함 
     - Domain명에 .이 하나 이상 있어야 함 
     - Domain명의 마지막 문자는 영문자 2~4개이어야 함 **/ 

    var check1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;  

    var check2 = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4})$/; 
     
    if ( !check1.test(strMail) && check2.test(strMail) ) { 
        return true; 
    } else { 
        return false; 
    } 
} 


/*--------------------------------------------------
  기능   : 한글여부 체크 (hwado@futureinfonet.com)
  INPUT  : check  data
  RETURN : true  -> 한글
           false -> 한글아님
----------------------------------------------------*/
// str은 한글이어야만 한다. 
function CheckHangul(str) { 
    strarr = new Array(str.length); 
    schar = new Array('/','.','>','<',',','?','}','{',' ','\\','|','(',')','+','='); 
    flag = true; 
    for (i=0; i<str.length; i++) { 
        for (j=0; j<schar.length; j++) { 
            if (schar[j] ==str.charAt(i)) { 
                flag = false; 
            } 
        } 
        strarr[i] = str.charAt(i) 
        if ((strarr[i] >=0) && (strarr[i] <=9)) { 
            flag = false; 
        } else if ((strarr[i] >='a') && (strarr[i] <='z')) { 
            flag = false; 
        } else if ((strarr[i] >='A') && (strarr[i] <='Z')) { 
            flag = false; 
        } else if ((escape(strarr[i]) > '%60') && (escape(strarr[i]) <'%80') ) { 
            flag = false; 
        } 
    } 
    if (flag) { 
        return true; 
    } else { 
        return false; 
    } 
     
} 


//숫자만 입력하게//
function gf_ncheck(num){
  var chkflag=true;
  for(var i =0;i<num.length;i++){
   c=num.charAt(i);
      if(!(c>='0' && c<='9')) {
              chkflag=false;
//              break;
      }
  }
  return chkflag;
}

function gf_numchk(frmname, value, name){
 if(!gf_ncheck(value)){
   alert('숫자만 입력하세요');
  var temp=eval("document." + frmname+ "." + name);  
  temp.value='';
  temp.focus();
 }
 }



