


/**
 * - srchview.jsp
 * - 검색 화면에서 사용하는 공통함수
 *
 * Copyright	Copyright (c) 2007
 * Company		LINKSOFT
 *
 * @author		SICHIN
 * @version		1.0,
 * @see
 * @date		2008. 01. 08
 */
/*=======================================================================================
  ###  현재 정의되어 있는 함수 리스트  ###
  =======================================================================================
- gf_SrchViewQuery(pageid, dispid): View용 Query 생성  (Validation Check 포함) - FQL param 용
- gf_SrchEditQuery(): EDIT용 Query 생성
- gf_ExistObject(g_obj): Form에 Object 존재체크
- gf_setVariable(pageid, g_obj): Form의 값을 변수에 담기
- gf_setFormInit(pageid):  Form의 초기화
- gf_setFormVariable(pageid, g_obj) 변수를 Form에 담기(구분)
- gf_setFormValue(pageid, g_obj, g_val, g_rdotype) : 변수값 Form에 담기
- gf_setFormQuery(pageid, editquery): Edit Query로 변수에 담기
- gf_getFormValue(pageid, g_obj, g_rdotype): Form의 변수값 가져오기
- gf_getFormText(pageid, g_obj, g_rdotype)  : Text Form에 담기
- gf_viewSearchAuthor(obj, btnposition): SelectBox Author Handle
- gf_setNewLine(pageid): Search 화면시 한줄추가 명령 실행
- gf_setNewLineForm(pageid, newcnt, repeatcnt): Search 화면시 한줄추가 Form 구성
=========================================================================================*/

/*** Golbal Variable Declare START ***/
var g_EditQuery     = "";
var g_ViewQuery     = "";
var g_DispQuery     = "";

var g_pageid    	= "";	//페이지ID (StandardParam에정의)
var g_gubuna        = "";	//구분a
var g_gubunb        = "";	//구분b
var g_gubunc        = "";	//구분c
var g_inputa        = "";	//검색어(txt)-저널:전방일
var g_inputb        = "";	//검색어(txt)
var g_inputc        = "";	//검색어(txt)
var g_boola         = "";	//부울1
var g_boolb         = "";	//부울1
var g_fromyear      = "";	//출판년1
var g_toyear        = "";	//출판년2

var g_type          = "";	//자료유형
var g_urlflag       = "";	//원문유무
var g_langcode      = "";	//언어코드
var g_langname      = "";	//언어이름
var g_sciflag       = "";	//SCI/학진등재여부
var g_srchfield     = "";	//고급검색 
var g_fldcode		= "";	//규격분야코드

var g_DispID        = 'A';	//B : 기본 , A : 고급
var g_newlinecnt    = 0;	//한줄추가 카운
var btnposition		= "a";	//form 내의 텍스트박스 포지션.

var g_gubun = new Array();
var g_input = new Array();
var g_bool  = new Array();
/*** Golbal Variable Declare END ***/



/*=======================================================================================
    함수명 : gf_SrchViewQuery
    기  능 : View용 Query 생성 및 Validation Check
    인  수 : 페이지ID, DisplayID
    리  턴 : 오류메세지ID (없으면 "")	//MessageID는 
=========================================================================================*/
function gf_SrchViewQuery(pageid, dispid)
{
	var ls_msgid = 0;
	var ls_vquery = "";
	var ls_dquery = "";
	
	g_ViewQuery = "";	//초기화.
	g_DispQuery = "";	//초기화.

	var arrcnt = 0;
	var tmpbuf = "";
	var tmpbuf1 = "";
	var tmpdbuf = "";	
	var tmpbuf2 = "";
		
	var arr_field_gubun = new Array();
	var arr_field_input = new Array();
	var arr_field_bool  = new Array();
	var arr_field_Vfilter= new Array();
	var arr_field_Dfilter= new Array();	

    //if(dispid == 'B') {
    /**** 기본검색인 경우 *****/
		//검색어 1(저널의 전방일치 포함)
		if(gf_Trim(g_inputa,'a') != "") {
			li_checkreturn = gf_FieldStringCheck(g_inputa);
			//필드 오류 
			if(li_checkreturn == 999999) return li_checkreturn;
			//999998 - 어구검색이다. gf_CutSpecialChar 은 skip
			if(li_checkreturn != 999998){
				if(g_gubuna == "AU")
					g_inputa = gf_AUSpecialChar(g_inputa);//저자는 "," 과 "." 는 스페이스로 대체.
				else if(g_gubuna == "FJ")
					g_inputa = gf_CutSpecialCharFront(g_inputa);	//전방일치용 제거.
				else	
					g_inputa = gf_CutSpecialCharPlus(g_inputa);
			}	

	   	    arr_field_gubun[arrcnt] = g_gubuna;
	   	    arr_field_input[arrcnt] = g_inputa;
	   	    arr_field_bool[arrcnt]  = g_boola.toLowerCase();
	   	    arrcnt++;
		}

	
		//검색어 2
		if(gf_Trim(g_inputb,'a') != "") {
			li_checkreturn = gf_FieldStringCheck(g_inputb);
			//필드 오류 
			if(li_checkreturn == 999999) return li_checkreturn;
			//999998 - 어구검색이다. gf_CutSpecialChar 은 skip
			if(li_checkreturn != 999998){
				if(g_gubunb == "AU")
					g_inputb = gf_AUSpecialChar(g_inputb);//저자는 "," 과 "." 는 스페이스로 대체.
				else	
					g_inputb = gf_CutSpecialCharPlus(g_inputb);
			}	
    	    arr_field_gubun[arrcnt] = g_gubunb;
    	    arr_field_input[arrcnt] = g_inputb;
    	    arr_field_bool[arrcnt]  = g_boolb.toLowerCase();
    	    arrcnt++;
	    }
	    
	    //new Line
		for(var g=0; g < g_newlinecnt; g++)
		{
		    if(gf_Trim(g_input[g],'a') != "") {
				li_checkreturn = gf_FieldStringCheck(g_input[g]);
				//필드 오류 
				if(li_checkreturn == 999999) return li_checkreturn;
				//999998 - 어구검색이다. gf_CutSpecialChar 은 skip
				if(li_checkreturn != 999998){
					if(g_gubun[g] == "AU")
						g_input[g] = gf_AUSpecialChar(g_input[g]);//저자는 "," 과 "." 는 스페이스로 대체.
					else	
						g_input[g] = gf_CutSpecialCharPlus(g_input[g]);
				}	
	    	    arr_field_gubun[arrcnt] = g_gubun[g];
	    	    arr_field_input[arrcnt] = g_input[g];
	    	    arr_field_bool[arrcnt]  = g_bool[g].toLowerCase();
	    	    arrcnt++;
		    }
		}   
	     
		//검색어 3
		if(gf_Trim(g_inputc,'a') != "") {
			li_checkreturn = gf_FieldStringCheck(g_inputc);
			//필드 오류 
			if(li_checkreturn == 999999) return li_checkreturn;
			//999998 - 어구검색이다. gf_CutSpecialChar 은 skip
			if(li_checkreturn != 999998){
				if(g_gubunc == "AU")
					g_inputc = gf_AUSpecialChar(g_inputc);//저자는 "," 과 "." 는 스페이스로 대체.
				else	
					g_inputc = gf_CutSpecialCharPlus(g_inputc);
			}	
	        arr_field_gubun[arrcnt] = g_gubunc;
    	    arr_field_input[arrcnt] = g_inputc;
	    }
	
		if(g_fldcode != ""){
	    	arr_field_gubun[arrcnt] = "FD";
			arr_field_input[arrcnt] = Char_Replace(g_fldcode,',',' or ');
			arrcnt++;
		}
		
		if(g_fromyear != "" || g_toyear != ""){
			var l_fromyear = g_fromyear;
			var l_toyear = g_toyear;
		    if(gf_Trim(g_fromyear,'a') == "") g_fromyear = "000001";
		    if(gf_Trim(g_toyear,'a') == "")   g_toyear = "999912";
	
			//년도 Validation Check
			
		    //arr_field_gubun[arrcnt] = "DY:"+g_fromyear+"~"+g_toyear;
		    //arr_field_input[arrcnt] = "DY:"+l_fromyear+"~"+l_toyear;

		    arr_field_gubun[arrcnt] = "DT";
		    arr_field_input[arrcnt] = g_fromyear+"01~"+g_toyear + "31";

		    arrcnt++;
		}		
		
		//기본검색 View Query 생성./ Disp Query생성 - 직접입력은 값이 같다
		for(var g=0;g < arr_field_gubun.length;g++){
		     if(g == 0){
				//g_gubuna 가 FS 이면 전방일치 이다.. vquery/dquery 다름
				
				if(arr_field_gubun[g] == 'FS'){					
					ls_vquery = arr_field_gubun[g]+":startWith("+arr_field_input[g]+")";
					
					var ls_frontsort = gf_Trim_Inner(arr_field_input[g].toLowerCase(),'a');
					ls_dquery = arr_field_gubun[g]+":startWith("+ls_frontsort+")";

				}else{
					if(arr_field_gubun[g] == "SN"){
						ls_vquery = arr_field_gubun[g]+":(\""+arr_field_input[g]+"\")";
					} else {
						ls_vquery = arr_field_gubun[g]+":("+arr_field_input[g]+")";
					}
					
					if(arr_field_gubun[g] == "DT"){
						var sDT = arr_field_input[g].replace("0101","");
						sDT =sDT.replace("1231","");
						ls_dquery = arr_field_gubun[g]+":("+sDT+")";
					}else {
						ls_dquery = arr_field_gubun[g]+":("+arr_field_input[g]+")";
					}


				}
				tmpbuf = ls_vquery;
				tmpdbuf = ls_dquery;
		     }else{
				//alert(arr_field_gubun[g]+" -  "+arr_field_input[g]);
				if(arr_field_gubun[g] == "SN"){
						ls_vquery = tmpbuf+" "+arr_field_bool[g-1]+" "+arr_field_gubun[g]+":(\""+arr_field_input[g]+"\")";
				} else {
						ls_vquery = tmpbuf+" "+arr_field_bool[g-1]+" "+arr_field_gubun[g]+":("+arr_field_input[g]+")";
				}
				
				if(arr_field_gubun[g] == "DT"){
						var sDT = arr_field_input[g].replace("0101","");
						sDT =sDT.replace("1231","");
						ls_dquery = tmpdbuf+" "+arr_field_bool[g-1].toUpperCase()+" "+arr_field_gubun[g]+":("+sDT+")";
				}else {
						ls_dquery = tmpdbuf+" "+arr_field_bool[g-1].toUpperCase()+" "+arr_field_gubun[g]+":("+arr_field_input[g]+")";
				}
				
				tmpbuf = ls_vquery;
				tmpdbuf = ls_dquery;
		     }
		 }
	//}

	//Within 검색 View Query 생성.
	arrcnt =0;
	
    if(gf_Trim(ls_vquery,'a') == ""){
       ls_msgid = 102; //검색어를 입력하세요.
       return ls_msgid;
    }   
	
	
	tmpbuf = ls_vquery; 
	tmpdbuf = ls_dquery; 
    //Filter 적용 쿼리

    for(var g=0;g < arr_field_Vfilter.length;g++){
        if(g > 0) tmpbuf1  += " AND ";
	    tmpbuf1 += "("+arr_field_Vfilter[g]+")";
    }
    for(var h=0;h < arr_field_Dfilter.length;h++){
        if(h > 0) tmpbuf2  += " AND ";
	    tmpbuf2 += arr_field_Dfilter[h];
    }



    if(gf_Trim(tmpbuf1,'a') != "") {
    	ls_vquery = tmpbuf + " AND "+tmpbuf1;
    }	
    if(gf_Trim(tmpbuf2,'a') != "") {
    	ls_dquery = tmpdbuf + " AND "+tmpbuf2;
    }	
	
	// new line 문자 제거r
    ls_vquery = Char_Replace(ls_vquery,'\r\n',' ');
	ls_vquery = Char_Replace(ls_vquery,'\r',' ');
	ls_vquery = Char_Replace(ls_vquery,'\n',' ');
    
    ls_dquery = Char_Replace(ls_dquery,'\\n',' ');
	ls_dquery = Char_Replace(ls_dquery,'\r',' ');
	ls_dquery = Char_Replace(ls_dquery,'\n',' ');

    // " 문제 대체 -> FQL생성 및 간략에서 보여줄때는 다시 decoding
	//ls_vquery = Str_Replace(ls_vquery,"\"","〓");
	//ls_dquery = Str_Replace(ls_dquery,"\"","〓");

    if(gf_Trim(ls_vquery,'a') == ""){
       ls_msgid = 102; //검색어를 입력하세요.
       return ls_msgid;
    }    

	g_ViewQuery = ls_vquery;
	g_DispQuery = ls_dquery;

	return ls_msgid;
}



/*=======================================================================================
    함수명 : gf_SrchEditQuery
    기  능 : EDIT용 Query 생성
    인  수 : 
    리  턴 : 
=========================================================================================*/
function gf_SrchEditQuery()
{

	g_EditQuery = "";     			//Edit용 쿼리 - 이 쿼리로 실행쿼리를 만든다.
	g_EditQuery +='@CI'+g_pageid;			//켈렉션
	g_EditQuery +='@GA'+g_gubuna;			//구분1
	g_EditQuery +='@GB'+g_gubunb;			//구분2
	g_EditQuery +='@GC'+g_gubunc;			//구분3
	g_EditQuery +='@IA'+g_inputa;           //검색어(txt)
	g_EditQuery +='@IB'+g_inputb;           //검색어(txt)
	g_EditQuery +='@IC'+g_inputc;           //검색어(txt)
	g_EditQuery +='@BA'+g_boola;			//부울1
	g_EditQuery +='@BB'+g_boolb;			//부울2
	
    //new Line
	for(var g=0; g < g_gubun.length; g++)
	{
	    g_EditQuery +='@G'+g+g_gubun[g];    //구분
	}
	for(var g=0; g < g_input.length; g++)
	{
	    g_EditQuery +='@I'+g+g_input[g];    //검색어(txt)
	}
	for(var g=0; g < g_bool.length; g++)
	{
	    g_EditQuery +='@B'+g+g_bool[g];		//부울
	}
	g_EditQuery +='@Y1'+g_fromyear;			//출판년1
	g_EditQuery +='@Y2'+g_toyear;			//출판년2
	g_EditQuery +='@DT'+g_type;		        //자료유형
	g_EditQuery +='@UF'+g_urlflag;			//원문유형
	g_EditQuery +='@LA'+g_langcode;			//언어
	g_EditQuery +='@SF'+g_sciflag;			//SCI여부
	g_EditQuery +='@LC'+g_fldcode;			//규격분야코드
	g_EditQuery +='@HS'+g_srchfield;        //고급검색(textarea)
	g_EditQuery +='@NC'+g_newlinecnt;		//NewLine Count
	g_EditQuery +='@TB'+g_DispID;		    //Tab Gubun
	g_EditQuery +='@';
	
    // " 문제 대체 
    g_EditQuery = Char_Replace(g_EditQuery,'\r\n',' ');
	g_EditQuery = Char_Replace(g_EditQuery,'\r',' ');
	g_EditQuery = Char_Replace(g_EditQuery,'\n',' ');
	//g_EditQuery = Str_Replace(g_EditQuery,"\"","〓");

	return;
}

/*=======================================================================================
    함수명 : gf_setVariable
    기  능 : Form의 값을 변수에 담기
    인  수 : 페이지ID, OBJECT
    리  턴 : 
=========================================================================================*/
function gf_setVariable(pageid, g_obj)
{

    g_pageid = pageid;

    if(g_obj.sel_gubuna     != null) g_gubuna    = gf_getFormValue(pageid, g_obj.sel_gubuna     ,0);
    if(g_obj.sel_gubunb     != null) g_gubunb    = gf_getFormValue(pageid, g_obj.sel_gubunb     ,0);
    if(g_obj.sel_gubunc     != null) g_gubunc    = gf_getFormValue(pageid, g_obj.sel_gubunc     ,0);
    if(g_obj.txt_inputa     != null) g_inputa    = gf_getFormValue(pageid, g_obj.txt_inputa     ,0);
    if(g_obj.txt_inputb     != null) g_inputb    = gf_getFormValue(pageid, g_obj.txt_inputb     ,0);
    if(g_obj.txt_inputc     != null) g_inputc    = gf_getFormValue(pageid, g_obj.txt_inputc     ,0);
    if(g_obj.sel_opera      != null) g_boola     = gf_getFormValue(pageid, g_obj.sel_opera      ,0);
    if(g_obj.sel_operb      != null) g_boolb     = gf_getFormValue(pageid, g_obj.sel_operb      ,0);
    if(g_obj.txt_from       != null) g_fromyear  = gf_getFormValue(pageid, g_obj.txt_from       ,0);
    
    if(g_obj.txt_to         != null) g_toyear    = gf_getFormValue(pageid, g_obj.txt_to         ,0);
    if(g_obj.rdo_type       != null) g_type      = gf_getFormValue(pageid, g_obj.rdo_type       ,1);
    if(g_obj.rdo_uf         != null) g_urlflag   = gf_getFormValue(pageid, g_obj.rdo_uf         ,1);
    if(g_obj.rdo_sci        != null) g_sciflag   = gf_getFormValue(pageid, g_obj.rdo_sci        ,1);
    if(g_obj.sel_lang       != null) g_langcode  = gf_getFormValue(pageid, g_obj.sel_lang       ,0);
    if(g_obj.sel_lang       != null) g_langname  = gf_getFormText (pageid, g_obj.sel_lang       ,0);
    if(g_obj.txt_srchfield  != null) g_srchfield = gf_getFormValue(pageid, g_obj.txt_srchfield  ,0);
    
    g_gubun = new Array();
    g_input = new Array();
    g_bool  = new Array();    
    
    //new Line
	for(var g=0; g < g_newlinecnt; g++)
	{
    	g_gubun[g] = gf_getFormValue(pageid, eval("g_obj.sel_gubun"+g) ,0);
    	g_input[g] = gf_getFormValue(pageid, eval("g_obj.txt_input"+g) ,0);
    	g_bool[g]  = gf_getFormValue(pageid, eval("g_obj.sel_oper"+g) ,0);
	}
	
	//KS 부분검색 에서 가져오기*********************
	var g_fldcnt = 0;
	if(g_obj.cbx_fldcode != null ) {
		g_fldcode = "";
		for(var g=0;g < g_obj.cbx_fldcode.length; g++) {
			if(g_obj.cbx_fldcode[g].checked == true) {
				if(g_fldcnt>0) g_fldcode += ",";
				g_fldcode += g_obj.cbx_fldcode[g].value;
				g_fldcnt++;
			}
		}
//		alert(g_fldcode);
	}
	
	return;
}



/*=======================================================================================
    함수명 : gf_setFormInit
    기  능 : Form의 초기화
    인  수 : pageid
    리  턴 : 
=========================================================================================*/
function gf_setFormInit(pageid)
{

    g_pageid    = pageid;

	if(pageid=='basicsrch'){
	    //g_gubuna        = "TI";
	}
	g_gubuna        = "TI";
    g_gubunb        = "SN";
    g_gubunc        = "AB";
    
    g_inputa        = "";
    g_inputb        = "";
    g_inputc        = "";
    g_boola         = "AND";
    g_boolb         = "AND";
    g_fromyear      = "";
    g_toyear        = "";
    
    g_type          = "";
    g_urlflag       = "";
    g_sciflag       = "";
    g_fldcode		= "";
    g_langcode      = "";
    g_srchfield     = "";
    
    g_gubun = new Array();
    g_input = new Array();
    g_bool  = new Array();  

    //NewLine reset
    if(gf_ExistObject(document.getElementById("div_newline")) == 1){
        for(var g=0; g < document.getElementById("div_newline").rows.length; g++){
            document.getElementById("div_newline").deleteRow(0);
        }
    }
    g_newlinecnt    = 0;

	//ks 부분검색 checkbox list reset	
	if(document.getElementById("cbx_fldcode") != null && document.getElementById("cbx_fldcode") != undefined){
		for(i=0; i< document.all.cbx_fldcode.length; i++) {
    		document.all.cbx_fldcode[i].checked = false;
    	}
	}
	return;
}



/*=======================================================================================
    함수명 : gf_ExistObject
    기  능 : Check
           : Form에 Object 존재체크
    인  수 : 
    RETURN : 1/0
=========================================================================================*/
function gf_ExistObject(g_obj) 
{
    var retstr = 1;
    switch(g_obj)
    {
        case null:
        case undefined:
        case "undefined":
            retstr = 0;
            break;
        default:
            retstr = 1;
            break;
    }
	return retstr;
}

/*=======================================================================================
    함수명 : gf_setFormQuery
    기  능 : Edit Query로 변수에 담기
    인  수 : editquery
    리  턴 : 
=========================================================================================*/
function gf_setFormQuery(pageid, editquery)
{
    var ls_header='';		//S1,T1
	var ls_buf='';			//값
	var ls_Edit;

	gf_setFormInit(pageid);  //담을 변수 초기화

	ls_Edit=editquery.split("@");
	
	for(var g=0; g < ls_Edit.length; g++){
		if(ls_Edit[g].length > 0){
			ls_header = ls_Edit[g].substr(0,2);
			if(ls_header.length > 0){
				ls_buf = ls_Edit[g].substr(2);
			}
			if(ls_header=='CI') g_pageid			= ls_buf;	//켈렉션
			else if(ls_header=='GA') g_gubuna		= ls_buf;	//구분1
			else if(ls_header=='GB') g_gubunb		= ls_buf;	//구분2
			else if(ls_header=='GC') g_gubunc		= ls_buf;	//구분3
			else if(ls_header=='IA') g_inputa       = ls_buf;	//검색어1 - 저널전방일치
			else if(ls_header=='IB') g_inputb       = ls_buf;	//검색어2
			else if(ls_header=='IC') g_inputc       = ls_buf;	//검색어3
			else if(ls_header=='BA') g_boola		= ls_buf;	//부울1
			else if(ls_header=='BB') g_boolb		= ls_buf;	//부울2
			else if(ls_header=='Y1') g_fromyear		= ls_buf;	//출판년1
			else if(ls_header=='Y2') g_toyear		= ls_buf;	//출판년2
			else if(ls_header=='DT') g_type  		= ls_buf;	//자료유형
			else if(ls_header=='UF') g_urlflag      = ls_buf;	//원문유형
			else if(ls_header=='LA') g_langcode		= ls_buf;	//언어
			else if(ls_header=='SF') g_sciflag      = ls_buf;	//SCI여부
			else if(ls_header=='LC') g_fldcode      = ls_buf;	//규격분야코드
			else if(ls_header=='HS') g_srchfield    = ls_buf;	//고급검색(textarea)
			else if(ls_header=='NC') g_newlinecnt   = ls_buf;	//NewLine Count
			else if(ls_header=='TB') g_DispID		= ls_buf;	//Tab Gubun
		}//end of if
	}//end of for
	
	//newLine용
	for(var g=0; g < ls_Edit.length; g++){
		if(ls_Edit[g].length > 0){
			ls_header = ls_Edit[g].substr(0,2);
			if(ls_header.length > 0){
				ls_buf = ls_Edit[g].substr(2);
			}
		    for(var h=0; h< g_newlinecnt; h++){
    			if(ls_header=='G'+h)        g_gubun[h]  = ls_buf;	//구분
    			else if(ls_header=='I'+h)   g_input[h]  = ls_buf;	//검색어
    			else if(ls_header=='B'+h)   g_bool[h]   = ls_buf;	//부울
		    }
	    }
	}//end of for
	
	return;
}
/*=======================================================================================
    함수명 : gf_setFormVariable
    기  능 : 변수를 Form에 담기(구분)
    인  수 : 페이지ID, Form객체
    리  턴 : 
=========================================================================================*/
function gf_setFormVariable(pageid, g_obj)
{
    if(g_obj.sel_gubuna    != null ) gf_setFormValue(pageid, g_obj.sel_gubuna    , g_gubuna     ,0);
    if(g_obj.sel_gubunb    != null ) gf_setFormValue(pageid, g_obj.sel_gubunb    , g_gubunb     ,0);
    if(g_obj.sel_gubunc    != null ) gf_setFormValue(pageid, g_obj.sel_gubunc    , g_gubunc     ,0);
    if(g_obj.txt_inputa    != null ) gf_setFormValue(pageid, g_obj.txt_inputa    , g_inputa     ,0);
    if(g_obj.txt_inputb    != null ) gf_setFormValue(pageid, g_obj.txt_inputb    , g_inputb     ,0);
    if(g_obj.txt_inputc    != null ) gf_setFormValue(pageid, g_obj.txt_inputc    , g_inputc     ,0);
    if(g_obj.sel_opera     != null ) gf_setFormValue(pageid, g_obj.sel_opera     , g_boola      ,0);
    if(g_obj.sel_operb     != null ) gf_setFormValue(pageid, g_obj.sel_operb     , g_boolb      ,0);
    if(g_obj.txt_from      != null ) gf_setFormValue(pageid, g_obj.txt_from      , g_fromyear   ,0);
    if(g_obj.txt_to        != null ) gf_setFormValue(pageid, g_obj.txt_to        , g_toyear     ,0);
    if(g_obj.rdo_type      != null ) gf_setFormValue(pageid, g_obj.rdo_type      , g_type       ,1);
    if(g_obj.rdo_uf        != null ) gf_setFormValue(pageid, g_obj.rdo_uf        , g_urlflag    ,1);
    if(g_obj.rdo_sci       != null ) gf_setFormValue(pageid, g_obj.rdo_sci       , g_sciflag    ,1);
    if(g_obj.sel_lang      != null ) gf_setFormValue(pageid, g_obj.sel_lang      , g_langcode   ,0);
    if(g_obj.txt_srchfield != null ) gf_setFormValue(pageid, g_obj.txt_srchfield , g_srchfield  ,0);


    //NewLine Form Create
    gf_setNewLineForm(pageid, 0, g_newlinecnt);

	//if(pageid=='basicsrch'){
	    //author Button display
	    gf_viewSearchAuthor(g_obj.sel_gubuna, 'a');
	    gf_viewSearchAuthor(g_obj.sel_gubunb, 'b');
	    gf_viewSearchAuthor(g_obj.sel_gubunc, 'c');
	//}
	
	    
    //new Line
	for(var g=0; g < g_newlinecnt; g++)
	{
    	gf_setFormValue(pageid, eval("g_obj.sel_gubun"+g) , g_gubun[g],0);
    	gf_setFormValue(pageid, eval("g_obj.txt_input"+g) , g_input[g],0);
    	gf_setFormValue(pageid, eval("g_obj.sel_oper"+g)  , g_bool[g] ,0);

   		//if(pageid=='basicsrch'){
    		    gf_viewSearchAuthor(eval("g_obj.sel_gubun"+g), g);
    	//}
	}

	// ks 부분검색   g_fldcode
	if(g_obj.cbx_fldcode != null ) {
		var sArr=g_fldcode.split(",");
		for(var g=0;g < sArr.length;g++) {
			for(var g1=0;g1 < g_obj.cbx_fldcode.length ; g1++){
				if(g_obj.cbx_fldcode[g1].value == sArr[g]){
					g_obj.cbx_fldcode[g1].checked = true;
				}
			}
		}
	}
	
    return;
}

/*=======================================================================================
    함수명 : gf_setFormValue
    기  능 : set String
           : 변수값 Form에 담기
    인  수 : object, objvalue, rdotype flag 
    RETURN :  
=========================================================================================*/
function gf_setFormValue(pageid, g_obj, g_val, g_rdotype) 
{
    if(g_val == null || g_val == undefined || g_val == "undefined") return;

    if(g_rdotype == 1) //radio
    {
        for(var g=0; g < g_obj.length; g++)
        {
            if(g_obj[g].value == g_val){
                g_obj[g].checked = true;
                break;
            }
        }
    }else{
        if(g_obj == null || g_obj == undefined) return;
        
        switch(g_obj.type)
        {
            case null:
            case undefined:
            case "undefined":
                break;
            case "select-one":   
                for(var g=0; g < g_obj.length;g++){
                    if(g_obj[g].value==g_val){
                        g_obj[g].selected=true;
                        break;
                    }
                }
                break;
            case "checkbox":
                var arr_tmp=g_val.split(",");
                for(var g=0; g < arr_tmp.length; g++){
                    for(var h=0; h < g_obj.length; h++){
                        if(g_obj[h].value==arr_tmp[g]){
                            g_obj[h].checked=true;
                            continue;
                        }
                    }
                }
                break;
            case "radio":
                for(var g=0; g < g_obj.length(); g++)
                {
                    if(g_obj[g].value == g_val){
                        g_obj[g].checked;
                    }
                }
                break;
            case "text":
                //g_obj.value = Str_Replace(g_val,"〓","\"");
                g_obj.value = g_val;
                break;
            default:
                g_obj.value = g_val;
                break;
        }
    }
    
    return;
}


/*=======================================================================================
    함수명 : gf_getFormText
    기  능 : get String
           : Form의 변수의 Text 가져오기
    인  수 : 페이지ID, object, rdotype flag 
    RETURN : string
=========================================================================================*/
function gf_getFormText(pageid, g_obj, g_rdotype) 
{

    if(g_obj == null || g_obj == undefined) return retstr;
    switch(g_obj.type)
    {
        case null:
        case undefined:
        case "undefined":
            retstr = "";
            break;
        case "select-one":   
            retstr = g_obj.options[g_obj.selectedIndex].text;
            break;
        default:
            retstr = g_obj.value;
            break;
    }
   return retstr;
}

/*=======================================================================================
    함수명 : gf_getFormValue
    기  능 : get String
           : Form의 변수값 가져오기
    인  수 : 페이지ID, object, rdotype flag 
    RETURN : string
=========================================================================================*/
function gf_getFormValue(pageid, g_obj, g_rdotype) 
{
    var retstr = "";
    if(g_rdotype == 1) //radio
    {
        if(g_obj == null || g_obj == undefined) return retstr;
        for(var g=0; g < g_obj.length; g++)
        {
            if(g_obj[g].checked) {
                retstr = g_obj[g].value;
                break;
            }  
        }
    }else{
        if(g_obj == null || g_obj == undefined) return retstr;
        switch(g_obj.type)
        {
            case null:
            case undefined:
            case "undefined":
                retstr = "";
                break;
            case "select-one":   
                retstr = g_obj.options[g_obj.selectedIndex].value;
                break;
            case "checkbox":
                for(var g=0; g < g_obj.length() ; g++)
                {
                    if(g_obj[g].checked) {
                        if( gf_Trim(retstr,'a') != "") retstr += ",";
                        retstr += g_obj[g].value;
                    }  
                }
                break;
            case "radio":
                for(var g=0; g < g_obj.length(); g++)
                {
                    if(g_obj[g].checked) {
                        retstr = g_obj[g].value;
                        break;
                    }  
                }
                break;
            default:
                retstr = gf_Trim(g_obj.value,'a');
                break;
        }
    }
    return retstr;
}

/*=======================================================================================
    함수명 : gf_setNewLine
    기  능 : Search 화면시 한줄추가 명령 실행
    인  수 : 페이지ID
    리  턴 : 
=========================================================================================*/
function gf_setNewLine(pageid)
{
    gf_setNewLineForm(pageid, g_newlinecnt, 1);
    g_newlinecnt++;
   
    return;
}

/*=======================================================================================
    함수명 : gf_setNewLineForm
    기  능 : Search 화면시 한줄추가 Form 구성
    인  수 : 페이지ID, 구분번호, 반복수
    리  턴 : 
=========================================================================================*/
function gf_setNewLineForm(pageid, newcnt, repeatcnt)
{
    var divstr = "";
    
	if(pageid=='basicsrch'){
	    for(var g=0; g < repeatcnt; g++){
	        if(g > 0) newcnt++;

	        divstr += "  <td height='24'><table width=100% border='0' cellspacing='0' cellpadding='0'><tr><td height=25> ";       
	        divstr += "         <select name='sel_gubun"+newcnt+"' class='search_select1' OnChange=\"javascript:btnposition='"+newcnt+"';gf_viewSearchAuthor(this, btnposition)\">    ";
	        divstr += "             <option value='BI'>전체</option> ";
	        divstr += "             <option value='TI'>서명</option> ";
	        divstr += "             <option value='AB'>초록</option> ";
	        divstr += "             <option value='AU'>저자</option> ";
	        divstr += "             <option value='SN'>ISSN</option> ";
	        divstr += "             <option value='BN'>ISBN</option> ";
	        divstr += "             <option value='KW'>키워드</option> ";
	        divstr += "         </select>  ";
	        divstr += "         <span id='btn_SrchAuthor"+newcnt+"'></span>  ";
	        divstr += "         <input name='txt_input"+newcnt+"' type='text' autocomplete='off' class='search_input1' onBlur=\"javascript:btnposition='"+newcnt+"';\" onkeypress='javascript:KeyEvent(event);'>  ";
	        divstr += "         <select name='sel_oper"+newcnt+"' class='search_select2'>  ";
	        divstr += "             <option value='AND'>AND</option> ";
	        divstr += "             <option value='OR'>OR</option> ";
	        divstr += "         </select> ";
	        divstr += "  </td></tr><tr><td height=1></td></tr></table></td> ";  
	    }
    }else if(pageid=='kssrch'){
	    for(var g=0; g < repeatcnt; g++){
	        if(g > 0) newcnt++;

	        divstr += "  <td height='24'><table width=100% border='0' cellspacing='0' cellpadding='0'><tr><td height=25> ";       
	        divstr += "         <select name='sel_gubun"+newcnt+"' class='search_select1' OnChange=\"javascript:btnposition='"+newcnt+"';gf_viewSearchAuthor(this, btnposition)\">    ";
	        divstr += "             <option value='BI'>전체</option> ";
	        divstr += "             <option value='TI'>서명</option> ";
	        divstr += "             <option value='SN'>ISSN</option> ";
	        divstr += "             <option value='BN'>ISBN</option> ";
	        divstr += "         </select>  ";
	        divstr += "         <span id='btn_SrchAuthor"+newcnt+"'></span>  ";
	        divstr += "         <input name='txt_input"+newcnt+"' type='text' autocomplete='off' class='search_input1' onBlur=\"javascript:btnposition='"+newcnt+"';\" onkeypress='javascript:KeyEvent(event);'>  ";
	        divstr += "         <select name='sel_oper"+newcnt+"' class='search_select2'>  ";
	        divstr += "             <option value='AND'>AND</option> ";
	        divstr += "             <option value='OR'>OR</option> ";
	        divstr += "         </select> ";
	        divstr += "  </td></tr><tr><td height=1></td></tr></table></td> ";  
	    }
    }
    if(gf_Trim(divstr,'a') == "") return;
    document.getElementById("div_newline").insertRow().insertCell().innerHTML = divstr;
    if(newcnt==0) g_newlinecnt = repeatcnt;
    return;
}

/*=======================================================================================
    함수명 : gf_viewSearchAuthor
    기  능 : SelectBox Author Handle
    인  수 : Object, btnposition
    리  턴 : 
=========================================================================================*/
function gf_viewSearchAuthor(obj, btnposition)
{
	return;
	
    var seltype = obj.value;
    var btnbar = "";

    if(seltype == "AU"){
        document.getElementById("txt_input"+btnposition).className = "search_input_au";
        btnbar = "<a href=\"javascript:gf_BrowseAuthor('"+btnposition+"');\"><img src='../../img/ndsl/btn_authorsearch.gif' name='btn_SrchAuthor"+btnposition+"' id='btn_SrchAuthor"+btnposition+"' border='0' align='absmiddle' title='저자찾기' alt='저자찾기'></a> ";
    }else{
        document.getElementById("txt_input"+btnposition).className = "search_input";
    }
    eval("btn_SrchAuthor"+btnposition+".innerHTML= btnbar;");
    return;
}



/*=======================================================================================
    함수명 : gf_Simple_SrchViewQuery
    기  능 : View용 Query 생성
    인  수 : 구분자, 검색자
    리  턴 : 
=========================================================================================*/
function gf_Simple_SrchViewQuery(gubunid, searchword)
{
	var temp_searchword = "";

		//파서에서 Default 로 BI 붙여줌.
	if(gubunid != "BI")
		temp_searchword = "(" + gubunid + " : " + searchword + ")";
	else
		temp_searchword = searchword ;
		
	// new line 문자 제거
    temp_searchword = Char_Replace(temp_searchword,'\r\n',' ');
	temp_searchword = Char_Replace(temp_searchword,'\r',' ');
	temp_searchword = Char_Replace(temp_searchword,'\n',' ');

    // " 문제 대체 -> FQL생성 및 간략에서 보여줄때는 다시 decoding
	//temp_searchword = Str_Replace(temp_searchword,"\"","〓");

    temp_searchword = gf_Trim(temp_searchword,'a');	

	return temp_searchword;
}