/*=======================================================================================
###srch_Parsing.js - String °ü·Ã ÇÔ¼ö¸¦ Á¤ÀÇ

###ÇöÀç Á¤ÀÇµÇ¾î ÀÖ´Â ÇÔ¼ö ¸®½ºÆ®###
 - gf_FieldParsing(field_source,field_arg)
 - ±×¿Ü gf_FieldParsing¿¡¼­ ÇÊ¿äÇÑ(È£ÃâÇÏ´Â) ÇÔ¼öµé
 - gf_CheckParentheses(as_keyword)
 - gf_GetComboValue(as_historyheader)
 - gf_MakeHistoryHeader(as_searchitem)
=========================================================================================*/

// ¾î±¸°Ë»öÀÏ°æ¿ì ¿¬»êÀÚ¸¦ Å°¿öµå·Î ¹Ù²Ù¾îÁØ´Ù.
var gs_kAND ='©Í'; //Å°¿öµå 'AND'º¯È¯¿ë º¯¼ö
var gs_kOR  ='©Û'; //Å°¿öµå 'OR'º¯È¯¿ë º¯¼ö
var gs_kNOT ='©à'; //Å°¿öµå 'NOT'º¯È¯¿ë º¯¼ö
var gs_kNEAR='©Ú'; //Å°¿öµå 'NEAR'º¯È¯¿ë º¯¼ö

/*****************************************************************
	ÇÔ ¼ö ¸í	: gf_FieldParsing(field_source, field_arg)
	¼³    ¸í	: ¿¬»êÀÚ Àû¿ë ÇÔ¼ö
	Argument
		1. field_source - ´ë»óµ¥ÀÌÅÍ
		2. field_arg - °Ë»ö ÇÊµå
******************************************************************/
function gf_FieldParsing(field_source,field_arg) {
//alert('field_source=>'+field_source);
//alert('field_arg=>'+field_arg);
	var query='';  			//°Ë»ö½Ä ÀúÀå¿ë
	var history=''; 		//HistoryÀúÀå¿ë
	var querytemp=''; 		//<starts>¿¬»ê½Ã ¿¬»êÀÚ¿Í Å°¿öµå¸¦ ¹Ù²ãÁÖ±â À§ÇØ
	var exp_flag=0; 		//<starts>¿¬»ê½Ã Å°¿öµå·Î ³¡³ª°Ô..
	var exp_continue=0; 		//<starts>¿¬»êÀÚ ´ÙÀ½¿¡ ´Ù¸¥¿¬»êÀÚ ±¸ºÐÇØ¼­ <in> fieldnameÀ» ºÙ¿©ÁÖÁö ¾Ê´Â´Ù.
	var token=''; 			//ÇÊµå ÅäÅ«
	var fieldname=field_arg;
	var rParentheses=''; 		//')'°ýÈ£ ´©Àûº¯¼ö
	var Pright=0; 			//')' flagº¯¼ö			
	pharse_temp = new Array();	//ÀÏÄ¡°Ë»ö½Ã °Ë»ö¾î ¾È¿¡ and,or,not,nearµîÀÇ ¿¬»êÀÚ Å°¿öµå°¡ ÀÖÀ» °æ¿ì ÀÌ°ÍÀÌ &,|,!·Î ¹Ù²îÁö ¾Ê°Ô ÇÏ±â À§ÇØ
	pharse_cal = new Array();	//ÀÏÄ¡°Ë»ö½Ã °Ë»ö¾î ¹ÛÀÇ and,or,not,nearµîÀÇ µû·Î ÀúÀåÇÏ±â À§ÇØ
	var li_double=0;		//'"'ÀÇ °³¼ö
	var li_start;			//'"'ÀÇ ½ÃÀÛÀ§Ä¡
	var li_end;			//'"'ÀÇ ³¡À§Ä¡
	var temp='';
	var ls_buf = new Array();	//" "»çÀÌÀÇ ¾î±¸ ¿©·¯°³ ³ª¿Ã ¼ö ÀÖÀ¸¹Ç·Î ¹è¿­¿¡ ÀúÀåÇÑ´Ù.
	var old_buf = new Array();	
	//var org = new Array();
	//var dummy = new Array();	

	//--------¿©±âºÎÅÍ
	if (field_arg == 'reportno')
	{
		field_source = field_source +"*";
//		alert(field_source);
	}
	//-------¿©±â±îÁö ÀÓ½ÃÀÛ¾÷

	
	//ÇÊµå¼Ò½ºÀÇ ÁÂ. ¿ì °ø¹éÁ¦°ÅÇÑ´Ù.
	field_source=gf_Trim(field_source,'L');	//ÁÂÃø°ø¹éÁ¦°Å
	field_source=gf_Trim(field_source,'R');	//¿ìÃø°ø¹éÁ¦°Å
	field_source='-'+field_source+'-';       //°Ë»öÄõ¸® ¼Ò½ºÀÇ Ã³À½°ú ¸¶Áö¸·¿¡ '-' ºÙÀÎ´Ù.(Ã³À½,¸¶Áö¸· ±¸ºÐ¿ë)               

	
	/*------------------------------------------------------------------------
	//ÀÔ·ÂµÈ field_source °¡ ¾î±¸°Ë»ö¿ëÀÎÁö Ã¼Å©ÇÑ´Ù. 
	//¾î±¸ °Ë»öÀÏ°æ¿ì " "ºÎºÐ°ú, ¾Æ´ÏºÎºÐÀ» ºÐ¸®ÇÑ´Ù.
	//" "»çÀÌ´Â Å°¿öµåº¯È¯ Àû¿ë, ¾Æ´ÑºÎºÐÀº ¿¬»êÀÚº¯È¯Àû¿ë, ³ªÁß¿¡ ´Ù½Ã ÇÕÃÄ¼­ parsingÇÒ field_source¸¦ ¸¸µç´Ù.
	---------------------------------------------------------------------------*/
	var QuotationNum = lf_Checkquotation(field_source);	//"°³¼öÃ¼Å© 

                        
	//"°¡ µÎ°³ ¹Ì¸¸ÀÎ°æ¿ì ¾î±¸°Ë»öÀÌ ¾Æ´Ñ°É·Î °£ÁÖÇÑ´Ù                                    
	if(QuotationNum < 2) {	//¾î±¸°Ë»öÀÌ ¾Æ´Ñ°æ¿ì ¸ðµÎ ¿¬»êÀÚ Ã³¸®                        
                                                                                              
		//2001.07.27 Á¤¼÷¿µ:¿¬»êÀÚ º¯È¯                                               
		//¿¬»êÀÚ º¯È¯(and-->'&', or-->'|', not-->'!', and not-->'*!', near-->'¢Í')	  
		field_source=Word_Check(field_source,'and','&');                              
		field_source=Word_Check(field_source,'or','|');                               
		field_source=Word_Check(field_source,'not','!');                              
		field_source=Word_Check(field_source,'near','¢Í');                            
	                                                                                      
		//´ë¹®ÀÚ AND,OR,NOT,NEAR --> Å°¿öµå°¡ ¾Æ´Ñ ¿¬»êÀÚ·Î ÇÑ´Ù.                     
		field_source=Word_Check(field_source,'AND','&');                              
		field_source=Word_Check(field_source,'OR','|');                               
		field_source=Word_Check(field_source,'NOT','!');                              
		field_source=Word_Check(field_source,'NEAR','¢Í');                            
                                                                                              
	}                                                                                     
	else {	//¾î±¸°Ë»öÀÏ °æ¿ì, " "»çÀÌ¸¸ Å°¿öµå Ã³¸®ÇÏ°í, ³ª¸ÓÁö´Â ¸ðµÎ ¿¬»êÀÚÃ³¸®.       
                                                                                              
		var li_num = parseInt(QuotationNum/2);

		for(var z=1; z<= li_num; z++) {

			
			Temp_Str = gf_string_return(field_source, '"', '"', true); 			
			ls_buf[z]=gf_Trim(Temp_Str,'A');		
			field_source = Str_Replace(field_source,'"'+Temp_Str+'"',ls_buf[z]);
			//field_source = '"' + ls_buf[z] + '"';
			old_buf[z] = ls_buf[z] 


			//Å°¿öµå Ã³¸®..                                                               
			ls_buf[z]=Str_Replace(ls_buf[z],'and',gs_kAND);                          
			ls_buf[z]=Str_Replace(ls_buf[z],'or',gs_kOR);		              
			ls_buf[z]=Str_Replace(ls_buf[z],'not',gs_kNOT);		              
			ls_buf[z]=Str_Replace(ls_buf[z],'near',gs_kNEAR);                        

			ls_buf[z]=Str_Replace(ls_buf[z],'AND',gs_kAND);                          
			ls_buf[z]=Str_Replace(ls_buf[z],'OR',gs_kOR);		              
			ls_buf[z]=Str_Replace(ls_buf[z],'NOT',gs_kNOT);		              
			ls_buf[z]=Str_Replace(ls_buf[z],'NEAR',gs_kNEAR);                        


			if(old_buf[z] != ls_buf[z]) { //and,or,not,near°¡ ÀÖ¾î¼­ Å°¿öµå¹®ÀÚ·Î Ä¡È¯µÇ¾úÀ»¶§
				field_source = Str_Replace(field_source, old_buf[z], ls_buf[z]);
			}
		}

		for(var y=1; y<= li_num; y++) {

			var org=ls_buf[y].substr(0,1);

			var dummy='\"'+Char_Replace(ls_buf[y],org,'/')+'\"';

			field_source = Str_Replace(field_source,ls_buf[y],dummy);

			field_source = Char_Replace(field_source,'/',org);

		}		                                  

                                                                                              
		//¿¬»êÀÚÃ³¸®..                                                                
		//¿¬»êÀÚ º¯È¯(and-->'&', or-->'|', not-->'!', and not-->'*!', near-->'¢Í')	  
		field_source=Word_Check(field_source,'and','&');                              
		field_source=Word_Check(field_source,'or','|');                               
		field_source=Word_Check(field_source,'not','!');                              
		field_source=Word_Check(field_source,'near','¢Í');                            
	                                                                                      
		//´ë¹®ÀÚ AND,OR,NOT,NEAR --> Å°¿öµå°¡ ¾Æ´Ñ ¿¬»êÀÚ·Î ÇÑ´Ù.                     
		field_source=Word_Check(field_source,'AND','&');                              
		field_source=Word_Check(field_source,'OR','|');                               
		field_source=Word_Check(field_source,'NOT','!');                              
		field_source=Word_Check(field_source,'NEAR','¢Í');
		                                                                              
	}                                                                                     
                                                                                              
	field_source=field_source.substr(1);
	field_source=field_source.substr(0,field_source.length-1);
	
	field_source=OnlyOneSpace(field_source);         //µÎ°³ ÀÌ»óÀÇ °ø¹éÀ» ÇÏ³ªÀÇ °ø¹éÀ¸·Î º¯È¯

	field_source=gf_SpaceJob(field_source,'=','a');  //'=' °ø¹éÁ¦°Å('ti=','ab=')
	field_source=gf_SpaceJob(field_source,'&','a');	 //¿¬»êÀÚ '&'ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,'|','a');	 //¿¬»êÀÚ '|'ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,'!','n');	 //¿¬»êÀÚ '!'ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,'%','p');	 //¿¬»êÀÚ '%'ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,'(','a');	 //¿¬»êÀÚ '('ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,')','a');	 //¿¬»êÀÚ ')'ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,"'",'a');	 //¿¬»êÀÚ "'"ÀÇ °ø¹éÁ¦°Å
	field_source=gf_SpaceJob(field_source,'¢Í','a');	 //¿¬»êÀÚ '¢Í'ÀÇ °ø¹éÁ¦°Å


	field_source=gf_DefaultAnd(field_source,'(');	 //°ýÈ£°¡ ³ª¿ÔÀ»¶§ '(' Àü°ú ')'ÈÄ¸¦ ÆÇ´ÜÇØ¼­ ¿¬»êÀÚ°¡ ¾øÀ¸¸é and¿¬»êÀÚ¸¦ ºÙÀÎ´Ù. 
	field_source=gf_DefaultAnd(field_source,')');	 //¿¹)a+b(c+d)f --> a+b*(c+d)*f

	/*---------------Å°¿öµå Ã³¸®----------------*/

	field_source=Str_Replace(field_source,gs_kAND,'¨×AND¨×');
	field_source=Str_Replace(field_source,gs_kOR,'¨×OR¨×');
	field_source=Str_Replace(field_source,gs_kNOT,'¨×NOT¨×');
	field_source=Str_Replace(field_source,gs_kNEAR,'¨×NEAR¨×');


	var field_length=field_source.length;

        for(i=0;i<field_length;i++) {
                token=field_source.charAt(i);

                switch (token) {
                	
                	//and°Ë»ö
                	case ' ':
                	case '&':
                		if(querytemp.indexOf(' ',0)>0) {  //¾î±¸°Ë»ö
                			query+=gf_MakeQuery('phrase',querytemp,fieldname);
                		}
                		else { 				//Å°¿öµå °Ë»ö
                			query+=gf_MakeQuery('and',querytemp,fieldname);
						}
		       		if(Pright) {
		                	query+=rParentheses;
					rParentheses='';
					Pright=0;
               			}
                		query+=' <and> ';
                		history+=" and ";
                		querytemp='';
                		break;
                	
                	//or°Ë»ö
                	case '|':
                		if(querytemp.indexOf(' ',0)>0) {  //¾î±¸°Ë»ö
                			query+=gf_MakeQuery('phrase',querytemp,fieldname);
                		}
                		else { 				//Å°¿öµå °Ë»ö
                			query+=gf_MakeQuery('or',querytemp,fieldname);
                		}
                		if(Pright) {
		                	query+=rParentheses;
					rParentheses='';
					Pright=0;
               			}
                		query+=' <or> ';
                		history+=" or ";
                		querytemp='';
                		break;
                	
			//not°Ë»ö
        		case '!':
                                if(querytemp=='') {
                                        query+=" <not> ";
                                }
                                else {
                        		if(Pright) {
                        			query+="<in>" +fieldname+rParentheses+ " <not> ";
						rParentheses='';
						Pright=0;
                                	}
                                	else {
                                		query+="<in>" +fieldname+ " <not> ";
                                	}
                                }

                                history+=" not ";
                                querytemp='';
                                break;
			
			//Àü¹æÀÏÄ¡°Ë»ö
			/* madul Ãß°¡ : 2001.08.14 : Àü¹æÀÏÄ¡ °Ë»ö½Ã »ç¿ë*/
                        case '%':
				query+=gf_MakeQuery('like',querytemp,fieldname);
		       		if(Pright) {
		                	query+=rParentheses;
					rParentheses='';
					Pright=0;
               			}
                                history+="% ";
                                querytemp='';
                                exp_flag=1;
                                break;
                                
			//Àý´Ü°Ë»ö
                        case '*':
				query+=gf_MakeQuery('starts',querytemp,fieldname);
		       		if(Pright) {
		                	query+=rParentheses;
					rParentheses='';
					Pright=0;
               			}
                                history+="* ";
                                querytemp='';
                                exp_flag=1;
                                break;

        		//°Ë»ö¾î±¸ °Ë»ö
                        case '"':
                        	/*---
							var ls_phse_string='';
                            for(j=i+1;j<field_length;j++) {
                                    if(field_source.charAt(j)=='"') {
                                            var phar_end=j;
                                            j=field_length;
                                    }
                            }
                            var phar_start_end=phar_end-i;
							query+=gf_MakeQuery('phrase',field_source.substr(i+1,phar_start_end-1),fieldname);
							history+=field_source.substr(i,phar_start_end+1);
                            i+=phar_start_end;
                            querytemp='';
                            exp_flag=0;
                            ---*/
                             
                            var ls_phse_string='';
                            //ÇöÀç field Æ÷Áö¼Ç¿¡¼­ ±¸°¡ ³¡³ª´Â '"' ¶Ç´Â "'"À§Ä¡ ÆÄ¾Ç
                            for(j=i+1;j<field_length;j++) {
                                    if(field_source.charAt(j)=='"') {
                                            var phar_end=j;
                                            j=field_length;
                                    }
                            }
                            var phar_start_end=phar_end-i;                       
							query+=gf_MakeQuery('phrase',field_source.substr(i+1,phar_start_end-1),fieldname);
                            history+=field_source.substr(i,phar_start_end+1);
                            //±¸ ±æÀÌ¸¸Å­ Å°¿öµå Æ÷Áö¼Ç ÀÌµ¿
                            i+=phar_start_end;
                            querytemp='';
                            exp_flag=1;                       
                            
                            break;

                        //near °Ë»ö
                        case '¢Í':
                        	query+=gf_MakeQuery('near',querytemp,fieldname);
                        	history+=' NEAR ';
                        	querytemp='';
                        	break;
                        
                        case '(':
                        	query+='(';
                                break;
			case ')':
                                rParentheses+=')';
                                Pright=1;
                                break;                                

			//¿©±â¼­ querytemp¿¡ ¿¬»êÀÚ¸¦ Á¦¿ÜÇÑ °Ë»ö¾î°¡ ÀúÀåÀÌ µÈ´Ù.(¿¬»êÀÚ Àü±îÁö)
			default:
                                querytemp+=token;
                                history+=token;
								break;                              
			
                }  //switch¹® ³¡
        }   //for¹® ³¡

	querytemp=gf_Trim(querytemp,'A');
        if(querytemp!='' || Pright) {
        	if(querytemp.indexOf(' ',0)>0) {  //¾î±¸°Ë»ö
                	query+=gf_MakeQuery('phrase',querytemp,fieldname);
                	if(Pright) {
				query+=rParentheses;
        		}
                }
                else if(exp_flag==0 || querytemp!=''){ 
			//madul »ðÀÔ - ÇÊµå ÀüÃ¼¿¡ ´ëÇØ¼­ °Ë»öÇÏ´Â ºÎºÐÀÌ ÀÖÀ½ - 2001.08.10
			if (fieldname == '') {
				if(Pright) {
					query+=querytemp+ rParentheses;
	        		}
	        		else {
	        			query+=querytemp;
	        		}
			}
			else {
				if(Pright) {
//					alert("111");
					query+=querytemp+ " <in> " +fieldname+rParentheses ;
	        		}
	        		else {
//					alert("211");
	        			query+=querytemp+ " <in> " +fieldname;
	        		}
	        	}
                }
                else query+=rParentheses;
	}

        history=Str_Replace(history,'¨×OR¨×','¨×OR¨×');   //orÅ°¿öµå °Ë»ö½Ã 'or'µÎ°³ ºÙ¿©ÁÜ, and,notÀº µÚ¿¡ ºÙÀ½,,±×·¡¼­ ¾Õ¿¡°ÍÀ» ¾ø¾ÖÁÜ         
//alert('query=>'+query);

	query=Str_Replace(query,'¨×AND¨×',"'and'");
	query=Str_Replace(query,'¨×OR¨×',"'or'");
	query=Str_Replace(query,'¨×NOT¨×',"'not'");
	query=Str_Replace(query,'¨×NEAR¨×',"'near'");
	
	history=Str_Replace(history,'¨×',"");
	
	

        return query +"&"+ history;
}

/*****************************************************************
	ÇÔ ¼ö ¸í	: gf_MakeQuery(as_exp,as_source,as_fieldname)
	¼³    ¸í	: verity°Ë»ö ¿¬»êÀÚ·Î º¯È¯
	Argument
		1. as_exp	- verity°Ë»ö ¿¬»êÀÚ
		2. as_source 	- °Ë»ö µ¥ÀÌÅÍ
		3. as_fieldname - °Ë»ö ÇÊµå
******************************************************************/
function gf_MakeQuery(as_exp,as_source,as_fieldname) {	//(¿¬»êÀÚ, querytemp, Å×ÀÌºíÇÊµåÀÌ¸§)
	var rtn_str='';	



	//ÇÊµå¿¡ ti=xx...¶ó°í ÀÔ·ÂÇßÀ»¶§ÀÇ Ã³¸®
        if(as_source.indexOf('ti=',0)>-1) {
                as_source=Str_Replace(as_source,'ti=','');
                as_fieldname='title';
	}
	else if(as_source.indexOf('ab=',0)>-1) {
		as_source=Str_Replace(as_source,'ab=','');
                as_fieldname='abstract';
	}            		           

	if(as_source=='') return rtn_str;
	
	//madul »ðÀÔ - ÇÊµå ÀüÃ¼¿¡ ´ëÇØ¼­ °Ë»öÇÏ´Â ºÎºÐÀÌ ÀÖÀ½ - 2001.08.10
	if (as_fieldname == '') {
		switch(as_exp) {
			case 'phrase':
				rtn_str=as_source;
				/*----------------------------------
				var temp=rtn_str.split(" ");
				rtn_str='';
				rtn_str+='(';
				for(n=0; n< temp.length; n++){
					rtn_str+='<word>'+temp[n];
					if(n < temp.length-1)rtn_str+='<and>';
				}
				rtn_str+=')';
				----------------------------------*/
				rtn_str=as_source;
				//rtn_str+='<in>'+as_fieldname;
				
				break;
			case 'and':
				rtn_str=as_source;
				break;
			case 'or':
				rtn_str=as_source;
				break;
			case 'starts':
				rtn_str=as_source +'*';
				break;
			case 'near':
				rtn_str=as_source+ ' <near/5> ';
				break;
		}
	}
	else {
		switch(as_exp) {
			case 'phrase':
				rtn_str=as_source;
				/*----------------------------------
				var temp=rtn_str.split(" ");
				rtn_str='';
				rtn_str+='(';
				for(n=0; n< temp.length; n++){
					rtn_str+='<word>'+temp[n];
					if(n < temp.length-1)rtn_str+='<and>';
				}
				rtn_str+=')';
				----------------------------------*/
//					alert("311");
				
				rtn_str+='<in>'+as_fieldname;
				break;
			case 'and':
				rtn_str=as_source +' <in> '+ as_fieldname;
				break;
			case 'or':
				rtn_str=as_source +' <in> '+ as_fieldname;
				break;
			/* madul Ãß°¡ : 2001.08.14 : Àü¹æÀÏÄ¡ °Ë»ö½Ã »ç¿ë*/
			case 'like':
				if (as_fieldname == 'Title') as_fieldname = 'titlesort';
				else if (as_fieldname == 'Author') as_fieldname = 'authorsort';
				else if (as_fieldname == 'Publisher') as_fieldname = 'publishersort';
				rtn_str= as_fieldname + ' <starts> '+as_source;
				break;
			/*******************/
			case 'starts':
				rtn_str=as_source +'* <in> '+ as_fieldname;
				break;
			case 'near':
				rtn_str=as_source+ ' <near/3> ';
				break;
		}
	}

	return rtn_str;
}

function gf_SpaceJob(field_source,token,gubun) {
	var ls_nTempPos; 	  //ÅäÅ« ´ÙÀ½ Æ÷Áö¼Ç
	var ls_cTempPos=0;  	  //ÅäÅ« ÇöÀçÆ÷Áö¼Ç
	var ls_lField_source='';  //field source¿¡¼­ ÀÛ¾÷ÇÒ left sttring
	var ls_cField_source='';  //field source¿¡¼­ ÀÛ¾÷ÇÒ current sttring
	var ls_rField_source='';  //field source¿¡¼­ ÀÛ¾÷ÇÒ right sttring
	var ls_dField_source='';  //ÀÛ¾÷ÇÑ sttring

	switch(gubun) {
		case 'p':
			while(1) {
				ls_cTempPos=field_source.indexOf(token,ls_cTempPos);
				if(ls_cTempPos != -1) { //tokenÀÌ  Á¸ÀçÇÏ¸é
					if(field_source.substr(ls_cTempPos-1,1)==' ') {  //token ÀÌÀü ¹®ÀÚ°¡ °ø¹éÀÌ¸é
						ls_lField_source=field_source.substr(0,ls_cTempPos-1);
						ls_rField_source=field_source.substr(ls_cTempPos);
						field_source=ls_lField_source+ls_rField_source;
//			alert('field_source='+field_source);
					}
					else {
						ls_cTempPos++;
					}
				}
				else break;
			}
			break;
		case 'n':
			while(1) {
				ls_cTempPos=field_source.indexOf(token,ls_cTempPos);
				if(ls_cTempPos != -1) { //tokenÀÌ Á¸ÀçÇÏ¸é
					if(field_source.substr(ls_cTempPos+1,1)==' ') {  //token ÀÌÈÄ ¹®ÀÚ°¡ °ø¹éÀÌ¸é
						ls_lField_source=field_source.substr(0,ls_cTempPos+1);
						ls_rField_source=field_source.substr(ls_cTempPos+2);
						field_source=ls_lField_source+ls_rField_source;
					}
					else {
						ls_cTempPos++;
					}
				}
				else break;
			}
			break;
		case 'a':
			ls_cTempPos=0;
			while(1) {
				ls_cTempPos=field_source.indexOf(token,ls_cTempPos);
				if(ls_cTempPos != -1) { //tokenÀÌ Á¸ÀçÇÏ¸é

					// ---- ÀÌÀü, ÀÌÈÄ¹®ÀÚ °ø¹éÀÏ°æ¿ì ÀÌÈÄ¹®ÀÚ °ø¹é ÄÚµåÈÄ¿¡ ÀÌÀü¹®ÀÚ °ø¹éÄÚµå·Î ÇÏ¸é Á¦°ÅµÊ.---------

					if(field_source.substr(ls_cTempPos+1,1)==' ') {  //tokenÀÌÈÄ ¹®ÀÚ°¡ °ø¹éÀÌ¸é
						ls_lField_source=field_source.substr(0,ls_cTempPos+1);
						ls_rField_source=field_source.substr(ls_cTempPos+2);
						field_source=ls_lField_source+ls_rField_source;
					}

					else if(field_source.substr(ls_cTempPos-1,1)==' ') {  //tokenÀÌÀü ¹®ÀÚ°¡ °ø¹éÀÌ¸é
						ls_lField_source=field_source.substr(0,ls_cTempPos-1);
						ls_rField_source=field_source.substr(ls_cTempPos);
						field_source=ls_lField_source+ls_rField_source;
					}
					//-------------------------¿©±â±îÁö------------------------------------------------------------
					else {
						ls_cTempPos++;
					}
				
				}
				else break;
			}
			break;
	}
//	if (cgs_User_IP == '143.248.215.175') alert('field_source='+field_source);
	return field_source;
}

function gf_DefaultAnd(field_source,token) {
	var ls_cTempPos=0;
	var LeftFlag=0;
	
	if(token=='(') LeftFlag=1;
	while(1) {
		ls_cTempPos=field_source.indexOf(token,ls_cTempPos);

		if(ls_cTempPos != -1) { //tokenÀÌ Á¸ÀçÇÏ¸é
			if(LeftFlag) {
				if(ls_cTempPos==0) break; //¸ÇÃ¹¹®ÀÚ°¡ °ýÈ£ÀÌ¸é..
				if(field_source.substr(ls_cTempPos-1,1)!='&' && field_source.substr(ls_cTempPos-1,1)!='|' && field_source.substr(ls_cTempPos-1,1)!='(') {  //'(' ÀÌÀü ¹®ÀÚ°¡ '&','|'¿¬»êÀÚ°¡ ¾Æ´Ï¸é
					ls_lField_source=field_source.substr(0,ls_cTempPos);
					ls_rField_source=field_source.substr(ls_cTempPos);
					field_source=ls_lField_source+ '&' +ls_rField_source;
				}
				ls_cTempPos+=2;
			}
			else {
				if(ls_cTempPos==field_source.length-1) break; //¸Ç ¸¶Áö¸· ¹®ÀÚ°¡ °ýÈ£ÀÌ¸é..
				if(field_source.substr(ls_cTempPos+1,1)!='&' && field_source.substr(ls_cTempPos+1,1)!='|' && field_source.substr(ls_cTempPos+1,1)!=')') {  //')' ÀÌÈÄ ¹®ÀÚ°¡ '&','|'¿¬»êÀÚ°¡ ¾Æ´Ï¸é
					ls_lField_source=field_source.substr(0,ls_cTempPos+1);
					ls_rField_source=field_source.substr(ls_cTempPos+1);
					field_source=ls_lField_source+ '&' +ls_rField_source;
				}
				ls_cTempPos++;
			}
		}
		else break;
	}
//	if (cgs_User_IP == '143.248.215.175') alert('field_source='+field_source);
	return field_source;
}

function Word_Check(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 (cgs_User_IP == '143.248.215.175') alert('StartPos='+StartPos);
			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;
}


/*=======================================================================================
	Function¸í : lf_Checkquotation
	±â  ´É : ÆÄ½ÌÇÒ¶§ ÀÔ·ÂÇÊµåÀÇ ValueÀÇ "ÀÇ °¹¼ö¸¦ Ã¼Å©ÇÑ´Ù
	ÀÎ  ¼ö :	as_keyword -- 
	RETURN : DoubleQuotation -- "°¹¼ö
=========================================================================================*/

function lf_Checkquotation (as_keyword)
{
	var DoubleQuotation = 0;	//DoubleQutaitonÀÇ °³¼ö
		
	for(i=0;i<as_keyword.length;i++) {
		if(as_keyword.charAt(i)=='"') DoubleQuotation++;
	}

	return DoubleQuotation;
}


/*=======================================================================================
	Function¸í : gf_CheckParentheses
	±â  ´É : ÆÄ½ÌÇÒ¶§ ÀÔ·ÂÇÊµåÀÇ ValueÀÇ °ýÈ£ÀÇ °¹¼ö¸¦ Ã¼Å©ÇÑ´Ù
	ÀÎ  ¼ö :	as_keyword -- 
	RETURN : ¾øÀ½
=========================================================================================*/

function gf_CheckParentheses(as_keyword)
{
	var Rparentheses=0;	//¿ì°ýÈ£ °¹¼ö
	var Lparentheses=0;	//ÁÂ°ýÈ£ °¹¼ö
	
	for(i=0;i<as_keyword.length;i++) {
		if(as_keyword.charAt(i)=='(') Lparentheses++;
		if(as_keyword.charAt(i)==')') Rparentheses++;
	}

	if(Lparentheses>Rparentheses) {
		alert("'(' °¡ " + (Lparentheses-Rparentheses) + ' °³ ´õ ¸¹½À´Ï´Ù');
		return 0;
	}
	if(Lparentheses<Rparentheses) {
		alert("')' °¡ " + (Rparentheses-Lparentheses) + ' °³ ´õ ¸¹½À´Ï´Ù');
		return 0;
	}
	
	return 1;
}

/*=======================================================================================
	Function¸í : gf_GetComboValue
	±â  ´É : °Ë»ö¾ÆÀÌÅÛ¼±ÅÃ ÄÞº¸ °ª »ý¼º - Edit ½ÇÇàÇÒ¶§ ÇÊ¿ä
	ÀÎ  ¼ö :	as_historyheader -- 
	RETURN : ¾øÀ½
=========================================================================================*/
function gf_GetComboValue(as_historyheader)
{
//alert("gf_GetComboValue Å¸´ÂÁß as_historyheader="+as_historyheader);

	var ls_combo;
		
	switch(as_historyheader) {
		case 'AL'	: ls_combo="All";	break;
		case 'TI'	: ls_combo="Title";	break;
		case 'AU'	: ls_combo="Author";	break;
		case 'SU'	: ls_combo="SubjectTerm";break;
		case 'AB'	: ls_combo="Abstract";	break;
		case 'IS'	: ls_combo="ISSN";	break;
		case 'IB'	: ls_combo="ISBN";	break;
		case 'PU'	: ls_combo="Publisher";	break;
		case 'JN'	: ls_combo="Journalname";	break;
		case "CO"	: ls_combo="Conference";break;
		case "LI"	: ls_combo="library";	break;
		case "RN"	: ls_combo="reportno";	break;
		case "AS"	: ls_combo="Advisor";	break;
		case "DP"	: ls_combo="Department";	break;
	}
	return ls_combo;
}

/*=======================================================================================
	Function¸í : gf_MakeHistoryHeader
	±â  ´É : °Ë»ö¾ÆÀÌÅÛÀÇ ÄÞº¸¹Ú½º¿¡ µû¶ó ÇÊµå°¡ º¯ÇÏ¹Ç·Î ÇØ´çÇÏ´Â È÷½ºÅä¸® Çì´õ¸¦ ±¸ÇÑ´Ù.
	ÀÎ  ¼ö :	as_searchitem -- 
	RETURN : ¾øÀ½
=========================================================================================*/

function gf_MakeHistoryHeader(as_searchitem)
{

//alert("gf_MakeHistoryHeader Å¸´ÂÁß as_searchitem="+as_searchitem);
	var HistoryHeader;
	
	switch(as_searchitem.toLowerCase()) {
		case 'title'		: HistoryHeader="TI";	break;
		case 'author'		: HistoryHeader="AU";	break;
		case 'subjectterm'	: HistoryHeader="SU";	break;
		case 'abstract'		: HistoryHeader="AB";	break;
		case 'isbn'			: HistoryHeader="IB";	break;
		case 'issn'			: HistoryHeader="IS";	break;
		case 'classno'		: HistoryHeader="CN";	break;
		case 'publisher'	: HistoryHeader="PU";	break;
		case 'Journalname'	: HistoryHeader="JN";	break;
		case 'Conference'	:HistoryHeader="CO";	break;
		case 'library'		: HistoryHeader="LI";	break;
//		case 'reportno'	: HistoryHeader="RN";	break;
		case 'department'	: HistoryHeader="DP";	break;
		case 'advisor'		: HistoryHeader="AS";	break;
		
	//Àü¹æÀÏÄ¡ ÇØ´õ	
		case 'TitleSort'	:HistoryHeader="TI"; break;
		case 'AuthorSort'	:HistoryHeader="AU"; break;
		case 'PubSort'		:HistoryHeader="PU"; break;
		case 'Department'	:HistoryHeader="DP"; break;
		default				: HistoryHeader="AL";	break;
	}
//alert("¸ÞÀÌÅ©ÇØ´õ="+HistoryHeader);
	return HistoryHeader;
}
