//区切り文字設定 全角文字の場合は、_を変数名に付与する。
SPLIT_AND           = " ";
SPLIT_AND_          = "　";

SPLIT_OR            = "|";
SPLIT_OR_           = "｜";

SPLIT_NOT            = "!";
SPLIT_NOT_           = "！";

SPLIT_FF		= "\"";

BASE_STR		= "___________________________BASE_STR_________________________________";

//Form名
FOM_GENII		= "GeNii";
FOM_WEBCAT	        = "WebcatPlus";
FOM_CINII	        = "CiNii";
FOM_KAKEN		= "KAKEN";
FOM_NIIDBR		= "NII_DBR";

//CiNii用
ci_con			= "condition";
ci_are			= "area";
ci_key			= "keyword";
ci_lgc			= "comb";

//tmp_con			= "1";
//tmp_are			= "allText";
//tmp_key			= "";
_TMP_LGC_CINII			= "1";

//テキストボックスクエリ
QUERY_KEY = new Array(10);
QUERY_LGC = new Array(10);
QUERY_TAG = new Array(10);

//テキストボックス内のの文字列を配列に分割する。（論理）
STRING_SPLIT_1 = new Array();
STRING_SPLIT_2 = new Array();
STRING_SPLIT_3 = new Array();
STRING_SPLIT_4 = new Array();
STRING_SPLIT_5 = new Array();
STRING_SPLIT_6 = new Array();
STRING_SPLIT_7 = new Array();
STRING_SPLIT_8 = new Array();
STRING_SPLIT_9 = new Array();
STRING_SPLIT_10 = new Array();


URL_NII_DBR = "http://dbr.nii.ac.jp/infolib/meta/CsvSearch.cgi";
PARA_QUERY = "q";
PARA_LANG = "ln";


//一時保存用論理演算子
_TMP_LGC_ = "default";

function makeFOM_KAKEN2(key) {
	//2009/05/20 mod by M.takizawa KAKENサーチリンク修正対応
	//var inForm = document.KAKEN;
	//inForm.IS_KEY_S1.value = $(key).innerHTML;
	//var ret = makeLinkOut("KAKEN");
	//set2SubmitLinkOut(ret);
	var inForm = document.KAKEN2;
	inForm.q4.value = $(key).innerHTML;
	submitFOM_KAKEN();
	//2009/05/20 mod end
}

/*
        KAKEN:詳細検索用Formを生成し、検索Queryを送信する。
*/
function makeFOM_KAKEN() {
        var tmp_key = "";
	var tmp_lgc = "";
	var tmp_tag = "";	
	var target = "";
	var _target = "";
	//2009/05/19　add by M.takizawa KAKENサーチリンク修正対応
	var tmp_key_q0 = "";
	var tmp_key_q4 = "";
	var tmp_key_q12 = "";
	var tmp_key_q9 = "";
	var tmp_key_q16 = "";
	//2009/05/19　add end

        var i = 0;
        //2009/05/19　del by M.takizawa KAKENサーチリンク修正対応
        //var j = 1;
        //2009/05/19　del end

        //FORMに値をセットする。
        for(i = 0 ; i < QUERY_KEY.length ; i++){

		if ( QUERY_KEY[i] != '' ) {
                        //[2] 検索対象をセット
                        tmp_tag =_convTagKaken(QUERY_TAG[i]);
                        if (tmp_tag=='issn') {
                                continue;
                        }
                        //2009/05/19　del by M.takizawa KAKENサーチリンク修正対応
                        //target = "document.KAKEN." + PRE_TAG_ID + j;
                        //_target = eval(target);
                        //_target.value = tmp_tag;
                        //2009/05/19　del end
			
			//[1] キーワードセット
			QUERY_KEY[i] = QUERY_KEY[i].replace(/\//g,"");
			//2009/05/19　add by M.takizawa KAKENサーチリンク修正対応
			if (QUERY_KEY[i].match(/!/g) == "!") {
				QUERY_KEY[i] = QUERY_KEY[i].replace(/!/g," -");
			}
			//2009/05/19　add end
			tmp_key = QUERY_KEY[i];
			//2009/05/19　del by M.takizawa KAKENサーチリンク修正対応
			//target = "document.KAKEN." + PRE_KEY_ID + j;
			//_target = eval(target);
			//2009/05/19　del end
			//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
			//_target.value = tmp_key;
			tmp_lgc = QUERY_LGC[i];
			switch (tmp_tag) {
				case "q0":
					tmp_key_q0 = queryStrCreate(tmp_key_q0, tmp_lgc, tmp_key);
					break;
				case "q4":
					tmp_key_q4 = queryStrCreate(tmp_key_q4, tmp_lgc, tmp_key);
					break;
				case "q12":
					tmp_key_q12 = queryStrCreate(tmp_key_q12, tmp_lgc, tmp_key);
					break;
				case "q9":
					tmp_key_q9 = queryStrCreate(tmp_key_q9, tmp_lgc, tmp_key);
					break;
				case "q16":
					tmp_key_q16 = queryStrCreate(tmp_key_q16, tmp_lgc, tmp_key);
					break;
			}
			//2009/05/19　mod end

			//[3] 項目間論理演算子セット
			//2009/05/19　del by M.takizawa KAKENサーチリンク修正対応
			//tmp_lgc = QUERY_LGC[i];
			//target = "document.KAKEN." + PRE_LGC_ID + j;
			//_target = eval(target);
			//_target = tmp_lgc;
			//2009/05/19　del end
		}
		//2009/05/19　del by M.takizawa KAKENサーチリンク修正対応
		//j++;
		//2009/05/19　del end
	}
	//2009/05/19　add by M.takizawa KAKENサーチリンク修正対応
	document.KAKEN2.q0.value = tmp_key_q0;
	document.KAKEN2.q4.value = tmp_key_q4;
	document.KAKEN2.q12.value = tmp_key_q12;
	document.KAKEN2.q9.value = tmp_key_q9;
	document.KAKEN2.q16.value = tmp_key_q16;
	//2009/05/19　add end
}


/*
        CiNii:詳細検索用Formを生成し、検索Queryを送信する。
*/
function makeFOM_CINII() {

        var tmp_key = "";
        var i = 0;
        var j = 1;

	//AND論理演算フラグ
	var _andflg = -1;
	//ORフラグ
	var _orflg  = -1;

        var inForm = document.CiNii;

        //FORMに値をセットする。
        for(i = 0 ; i < QUERY_KEY.length ; i++){
        var flg_con = ci_con + i;
        var flg_are = ci_are + i;
        var flg_key = ci_key + i;
        var flg_lgc = ci_lgc + i;
	if (QUERY_KEY[i] != '') {
	//[1]キーワードをセットする。
	//tmp_key = _xRegConvSpace(_ExtractAndOR(QUERY_KEY[i]),SPLIT_AND);

	// [ 1 ] フレーズ指定をチェック
	tmp_key = Fcheck(QUERY_KEY[i]);
	// [ 2 ] NOT演算子 & NOT指定されているキーワードを除去
	tmp_key = _xRegConvSpace(_ExtractAndOR(tmp_key),SPLIT_AND);
	// [ 3 ] すべてAND、すべてOR、AND・OR混在をチェック 
        _andflg = tmp_key.indexOf(SPLIT_AND);
        _orflg  = tmp_key.indexOf(SPLIT_OR);
	tmp_key = _convStrCiNii(tmp_key,_andflg,_orflg);

	if (FList != null && FList[0] != '') tmp_key = FBack(tmp_key);
	$(flg_key).value = tmp_key;

	//[2]テキストエリア内論理演算子をセットする。
	$(flg_lgc).value = _TMP_LGC_CINII;
	//[3]検索対象をセットする。
	$(flg_are).value = _convTagCiNii(QUERY_TAG[i]);

	//[4]項目間論理演算子をセットする。
	$(flg_con).value = _convTagCiNii(QUERY_LGC[i]);
	}
        }
}

//2009/05/19　add by M.takizawa CiNiiサーチリンク修正対応
function makeFOM_CINII2() {

    var tmp_key = "";
	var tmp_lgc = "";
	var tmp_tag = "";	
	var target = "";
	var _target = "";
	var tmp_key_q = "";
	var tmp_key_title = "";
	var tmp_key_author = "";
	var tmp_key_journal = "";
	var tmp_key_issn = "";
	var i = 0;

    //FORMに値をセットする。
    for(i = 0 ; i < QUERY_KEY.length ; i++){

		if ( QUERY_KEY[i] != '' ) {
            //[2] 検索対象をセット
            tmp_tag =_convTagCiNii(QUERY_TAG[i]);
			
			//[1] キーワードセット
			QUERY_KEY[i] = QUERY_KEY[i].replace(/\//g,"");
			if (QUERY_KEY[i].match(/!/g) == "!") {
				QUERY_KEY[i] = QUERY_KEY[i].replace(/!/g," -");
			}
			tmp_key = QUERY_KEY[i];
			tmp_lgc = QUERY_LGC[i];
			switch (tmp_tag) {
				case "q":
					tmp_key_q = queryStrCreate(tmp_key_q, tmp_lgc, tmp_key);
					break;
				case "title":
					tmp_key_title = queryStrCreate(tmp_key_title, tmp_lgc, tmp_key);
					break;
				case "author":
					tmp_key_author = queryStrCreate(tmp_key_author, tmp_lgc, tmp_key);
					break;
				case "journal":
					tmp_key_journal = queryStrCreate(tmp_key_journal, tmp_lgc, tmp_key);
					break;
				case "issn":
					tmp_key_issn = queryStrCreate(tmp_key_issn, tmp_lgc, tmp_key);
					break;
			}
		}
	}
	document.CiNii2.q.value = tmp_key_q;
	document.CiNii2.title.value = tmp_key_title;
	document.CiNii2.author.value = tmp_key_author;
	document.CiNii2.journal.value = tmp_key_journal;
	document.CiNii2.issn.value = tmp_key_issn;
}

function queryStrCreate(key, lgc, addkey) {
	
	var queryStr = "";
	
	if (key != "" && lgc == "AND") {
		queryStr = key + SPLIT_AND + addkey;
	} else if (key != "" && lgc == "OR") {
		queryStr = key + " | " + addkey;
	} else if (key != "" && lgc == "NOT") {
		queryStr = key + " -" + addkey;
	} else if (key == "" && lgc == "OR") {
		queryStr ="";
	} else if (key == "" && lgc == "NOT") {
		queryStr =="";
	} else {
		queryStr = addkey;
	}
	
	return queryStr
}

//2009/05/19　add end

function _convStrCiNii(tmp_key,_and_,_or_) {

	var tmp_str;
	var ret_str = "";

	//全てAND
	if ( _and_ != -1 && _or_ == -1 ) {
		_TMP_LGC_CINII = "1";
		return tmp_key;
	//全てOR
	} else if (_and_ == -1 && _or_ != -1) {
		//半角縦棒を半角スペースに変換する。
		_TMP_LGC_CINII = "2";
		//return _xRepAll(tmp_key,SPLIT_OR,SPLIT_AND);
		
		tmp_str = tmp_key.split(SPLIT_OR);
		for(i=0;i< tmp_str.length;i++){
			ret_str = ret_str + tmp_str[i] + SPLIT_AND;
		}
		return ret_str;
	//混在
	} else if (_and_ != -1 && _or_ != -1) {

		_TMP_LGC_CINII = "1";
		return _ExtractAnd(tmp_key);
		//return _xRepAll(tmp_key,SPLIT_OR,SPLIT_AND);
	} else {
		_TMP_LGC_CINII = "1";
		return tmp_key;
	}

}

function _convTagCiNii(tag){
	var ret_tag = "";

	switch (tag) {
		case "al":
			//2009/05/19　mod by M.takizawa CiNiiサーチリンク修正対応
			//ret_tag = "allText";
			ret_tag = "q";
			//2009/05/19　mod end
		break;
                case "ti":
			ret_tag = "title";
                break;
                case "au":
            //2009/05/19　mod by M.takizawa CiNiiサーチリンク修正対応
			//ret_tag = "affi";
			ret_tag = "author";
			//2009/05/19　mod end
                break;
                case "ky":
            //2009/05/19　mod by M.takizawa CiNiiサーチリンク修正対応
			//ret_tag = "allText";
			ret_tag = "q";
			//2009/05/19　mod end
                break;
                case "ma":
            //2009/05/19　mod by M.takizawa CiNiiサーチリンク修正対応
			//ret_tag = "jrnl";
			ret_tag = "journal";
			//2009/05/19　mod end
                break;
                case "id":
			ret_tag = "issn";
                break;
		case "AND":
			ret_tag = "1";
		break;
                case "OR":
			ret_tag = "2";
                break;
                case "NOT":
			ret_tag = "3";
                break;

	}

	return ret_tag;
}

function _convTagKaken(tag) {
        var ret_tag = "";

        switch (tag) {
                case "al":
                		//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
                        //ret_tag = "REC";
                        ret_tag = "q0";
                        //2009/05/19　mod end
                break;
                case "ti":
                		//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
                        //ret_tag = "SPJNM";
                        ret_tag = "q4";
                        //2009/05/19　mod end
                break;
                case "au":
                		//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
                		//ret_tag = "REC";
                        ret_tag = "q12";
                        //2009/05/19　mod end
                break;
                case "ky":
                		//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
                        //ret_tag = "SKYWD";
                        ret_tag = "q9";
                        //2009/05/19　mod end
                break;
                case "ma":
                		//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
                		//ret_tag = "SWGC";
                        ret_tag = "q16";
                        //2009/05/19　mod end
                break;
                case "id":
                        ret_tag = "issn";
                break;
        }

        return ret_tag;
}
/*
ANDのみを抽出する
*/
function _ExtractAnd(tmp_str) {
        //文字列を配列に格納する。
        var str_split =tmp_str.split('');

        // 'yes' or 'no'
        var through = 'no';
        var keythrough = 'no';
	var lgcflg      = 'default';

        //文字列を分割
        var ret_str = "";

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


                if ( through == 'no' && str_split[i] != SPLIT_OR && str_split[i] != SPLIT_NOT ) {
                        ret_str = ret_str + str_split[i];
                        if ( str_split[i] == SPLIT_AND ) {
                                lgcflg = SPLIT_AND;
                        } else {
                                lgcflg      = 'default';
                        }
                        through = 'no';
                } else {
                        if (through == 'no' &&  ( str_split[i] == SPLIT_OR || str_split[i] == SPLIT_NOT ) ) {
                                ret_str = ret_str + SPLIT_AND;
                                through = 'yes';
                                keythrough = 'yes';
                                //この分岐で、キーワードを次の論理演算子が来るまで、無視し続ける。
                        } else if (through == 'yes' && ( str_split[i] == SPLIT_OR || str_split[i] == SPLIT_NOT ) ) {
                                through = 'yes';
                                keythrough = 'no';
                        } else if (through == 'yes' && ( str_split[i] != SPLIT_OR || str_split[i] != SPLIT_NOT ) && str_split[i] != SPLIT_AND ) {
				if (lgcflg == SPLIT_AND )  ret_str = ret_str + str_split[i];
                                through = 'yes';
                                keythrough = 'yes';
                        } else if (keythrough == 'yes' && str_split[i] == SPLIT_AND ) {
                                //キーワードのスルーを解除
                                keythrough = 'no';
                                through = 'no';
                                ret_str = ret_str + SPLIT_AND;
                        }
                }
        }

        ret_str = _xRegConvSpace(ret_str,SPLIT_AND);
        return ret_str;
}
/*
AND、ORを抽出する。
*/
function _ExtractAndOR(tmp_str) {
        //文字列を配列に格納する。
        var str_split =tmp_str.split('');

        // 'yes' or 'no'
        var through = 'no';
        var keythrough = 'no';
	var lgcflg      = 'default';

        //文字列を分割
        var ret_str = "";

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


                if ( through == 'no' && str_split[i] != SPLIT_NOT ) {
                        //スペース,縦棒で区切られた文字列を抽出
                        /*
			ret_str = ret_str + str_split[i];
                        through = 'no';
			*/
                        //スペース,縦棒で区切られた文字列を抽出
/*
                        if (str_split[i] == SPLIT_OR) {
                                //空白で連結
                                ret_str = ret_str + SPLIT_AND;
                        } else {
                                ret_str = ret_str + str_split[i];
                        }
*/
                        
			ret_str = ret_str + str_split[i];

                        if ( str_split[i] == SPLIT_AND || str_split[i] == SPLIT_OR ) {
                                lgcflg = SPLIT_AND;
                        } else {
                                lgcflg      = 'default';
                        }
                        through = 'no';
                } else {
                        if (through == 'no' && ( str_split[i] == SPLIT_NOT ) ) {
                                //ret_str = ret_str + SPLIT_AND;
                                through = 'yes';
                                keythrough = 'yes';
                        } else if (through == 'yes' && ( str_split[i] == SPLIT_NOT ) ) {
                                through = 'yes';
                                keythrough = 'no';
                        } else if (through == 'yes' && ( str_split[i] != SPLIT_NOT ) && str_split[i] != SPLIT_AND && str_split[i] != SPLIT_OR ) {
				if (lgcflg == SPLIT_AND )  ret_str = ret_str + str_split[i];
                                through = 'yes';
                                keythrough = 'yes';
                        } else if (keythrough == 'yes' && ( str_split[i] == SPLIT_AND || str_split[i] == SPLIT_OR ) ) {
                                //キーワードのスルーを解除
                                keythrough = 'no';
                                through = 'no';
                                //ret_str = ret_str + SPLIT_AND;
                                ret_str = ret_str + str_split[i];
                        }
                }
        }

        ret_str = _xRegConvSpace(ret_str,SPLIT_AND);
	return ret_str;
}


/*--------------------------------------------------------------------
	引数1 : 文字列
	引数2 : 番号
	引数3 : AND の許可フラグ（'yes' or 'no'）
	引数4 : OR　の許可フラグ（'yes' or 'no'）
	引数5 : NOT の許可フラグ（'yes' or 'no'）

---------------------------------------------------------------------*/

function splitInFldString(str,no) {
	var tmp_str = str;
	
        // 'yes' or 'no'
        var through = 'no';
        var keythrough = 'no';
	var lgc		= 'default';
	var stop	= 'no';

	//余分なスペースを除去する。
	tmp_str = _xRegConvSpace(tmp_str,SPLIT_AND);
	_xdelspace(str,'top',SPLIT_OR)
	_xdelspace(str,'top',SPLIT_NOT)

	var str_split =tmp_str.split('');

	tmp_str = '';
	for (i = 0; i < str_split.length ; i++) {
				switch(str_split[i]) {
				case SPLIT_AND:
					if (lgc == 'default') {
						_TMP_LGC_ = 'AND';
						stop = 'yes';
					}
					//through = t1;
				break;
				case SPLIT_OR:
					if (lgc == 'default') {
						_TMP_LGC_ = 'OR';
						stop = 'yes';
					}
					//through = t2;
				break;
				case SPLIT_NOT:
					if (lgc == 'default') {
						_TMP_LGC_ = 'NOT';
						stop = 'yes';
					}
					//through = t3;
				break;
				default:
					tmp_str = tmp_str + str_split[i];
					through = 'no';
				break;
				}
		if (stop == 'yes') {
			STRING_SPLIT_1.push(tmp_str,lgc);
			lgc = _TMP_LGC_;
			stop = 'no';
		}
	}

}


/*-------------------------------------------------------------
        引数１：form名
        引数２：inputのname属性にマッチするもの

        返却：無し(配列を生成する。)
-------------------------------------------------------------*/

function creatQueryArray(type) {
	switch(type) {
		case PRE_KEY_ID:
			getKeyArray();
		break;
                case PRE_TAG_ID:
			getTagArray();
                break;
                case PRE_LGC_ID:
			getLgcArray();
                break;
	}
}

function makeQueryStartDetail(type,key) {
        //Queryを生成を開始
        switch(type) {
                case FOM_WEBCAT:
                        makeFOM_WEBCAT2(key);
                        //submitFOM_WEBCAT2();
                break;
                case FOM_KAKEN:
                        makeFOM_KAKEN2(key);
                        //submitFOM_KAKEN();
                break;
                case FOM_NIIDBR:
                        makeFOM_NIIDBR2(key);
                        //submitFOM_NIIDBR();
                break;
        }
}

function makeQueryStart(type) {

	//Queryを生成を開始
	switch(type) {
		case FOM_GENII:
			makeFOM_GENII();
			submitFOM_GENII();
		break;
                case FOM_WEBCAT:
			makeFOM_WEBCAT();
			submitFOM_WEBCAT();
                break;
                case FOM_CINII:
            //2009/05/19 Mod by M.takizawa CiNiiサーチリンク修正対応
			//makeFOM_CINII();
			makeFOM_CINII2();
			//2009/05/19 Mod end
			submitFOM_CINII();
                break;
                case FOM_KAKEN:
			makeFOM_KAKEN();
			submitFOM_KAKEN();
                break;
                case FOM_NIIDBR:
			makeFOM_NIIDBR();
			submitFOM_NIIDBR();
                break;
	}
}


function submitFOM_GENII(){

	if (Prototype.Browser.IE) {
	//ページのcharasetを取得
	var org_chr=document.charset;
	//ページのcharasetをEUC-JPに変更
	document.charset='EUC-JP';
	}

	//フォームを送信
	document.GeNii.submit();

	if (Prototype.Browser.IE) {
	//ページのcharasetを戻す
	document.charset=org_chr;
	}
}
function submitFOM_WEBCAT(){
	//webcat PlusはUTF-8

	document.WebcatPlus.submit();
}

function submitFOM_WEBCAT2() {
	document.WebcatPlus_Icchi.submit();
}

function submitFOM_CINII(){
		//2009/05/19 Del by M.Takizawa CiNiiサーチリンク修正対応
        //if (Prototype.Browser.IE) {
        ////ページのcharasetを取得
        //var org_chr=document.charset;
        ////ページのcharasetをEUC-JPに変更
        //document.charset='EUC-JP';
        //}
        //2009/05/19 Del end

	//2009/05/19 Mod by M.Takizawa CiNiiサーチリンク修正対応
	//document.CiNii.submit();
	document.CiNii2.submit();
	//2009/05/19 Mod end

		//2009/05/19 Del by M.Takizawa CiNiiサーチリンク修正対応
        //if (Prototype.Browser.IE) {
        ////ページのcharasetを戻す
        //document.charset=org_chr;
        //}
        //2009/05/19 Del end

}
function submitFOM_KAKEN(){
	//2009/05/19　mod by M.takizawa KAKENサーチリンク修正対応
	//document.KAKEN.submit();
	document.KAKEN2.submit();
	//2009/05/19　mod end
}
function submitFOM_NIIDBR(){

	document.NII_DBR.submit();
}

//フレーズ用配列準備
FList = new Array();

function Fcheck(str) {
	var cnt = 1;
	var _base = "";
	var ret = str;

	FList = new Array();
	FList = str.match(/\"[^\"]*\"/g);

	//return _xRepAll(str,"\"[^\"]*\"",BASE_STR);
	if (FList != null) {
	for (cnt = 0; cnt < FList.length; cnt++) {
		_base = BASE_STR + cnt;
		ret = ret.replace(/\"[^\"]*\"/,_base);
	}
	}

	return ret;
}

function FBack(str) {
	var cnt = 0;
	var tmp_str = str;
	var _base = "";
	var tgt = FList[cnt];

	for (cnt = 0; cnt < FList.length ; cnt++) {
		_base = BASE_STR + cnt;
		//_base = BASE_STR ;
	if(tmp_str.indexOf(_base) != -1) {
		tmp_str = tmp_str.replace(_base,FList[cnt]);
	}
	}

	return tmp_str;

}

/*
	GeNii用Formを生成し、検索Queryを送信する。
*/
function makeFOM_GENII() {

	var tmp_str = "";
	var i = 0;

	//文字列を連結する。(半角スペース)
	for(i = 0 ; i < QUERY_KEY.length ; i++){
                QUERY_KEY[i] = QUERY_KEY[i].replace(/\//g,"");
		if (QUERY_KEY[i] != '' && QUERY_LGC[i] == 'AND') {
			tmp_str = tmp_str + QUERY_KEY[i] + SPLIT_AND;
		}
	}

	tmp_str = Fcheck(tmp_str);

	//文字列を配列に格納する。
	var str_split =tmp_str.split('');

	// 'yes' or 'no'
	var through = 'no';
	var keythrough = 'no';
	var lgcflg	= 'default';
	//var ff		= 'no';

	//文字列を分割
	tmp_str = "";

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


		if ( through == 'no' && str_split[i] != SPLIT_OR && str_split[i] != SPLIT_NOT ) {
			tmp_str = tmp_str + str_split[i];
			if ( str_split[i] == SPLIT_AND ) {
				lgcflg = SPLIT_AND;  
			} else {
				lgcflg      = 'default';
			}
			through = 'no';
/*
		} else if ( through == 'no' && str_split[i] == SPLIT_FF) {
			ff = 'yes';
		} else if ( ff == 'yes' && str_split[i] == SPLIT_FF) {
*/			
		} else {
			if (through == 'no' &&  ( str_split[i] == SPLIT_OR || str_split[i] == SPLIT_NOT ) ) {
				tmp_str = tmp_str + SPLIT_AND;
	                        through = 'yes';
				keythrough = 'yes';
				//この分岐で、キーワードを次の論理演算子が来るまで、無視し続ける。
			} else if (through == 'yes' && ( str_split[i] == SPLIT_OR || str_split[i] == SPLIT_NOT ) ) {
				through = 'yes';
				keythrough = 'no';
			} else if (through == 'yes' && ( str_split[i] != SPLIT_OR || str_split[i] != SPLIT_NOT ) && str_split[i] != SPLIT_AND ) {
				//キーワードをスルー(ANDは例外)
				if (lgcflg == SPLIT_AND )  tmp_str = tmp_str + str_split[i];
				through = 'yes';
				keythrough = 'yes';
			} else if (keythrough == 'yes' && str_split[i] == SPLIT_AND ) {
				//キーワードのスルーを解除
                                keythrough = 'no';
				through = 'no';
				tmp_str = tmp_str + SPLIT_AND;
			}
		}
	}

	if (FList != null && FList[0] != '') tmp_str = FBack(tmp_str);
	tmp_str = _xRegConvSpace(tmp_str,SPLIT_AND);

	document.GeNii.TERM.value = tmp_str;
}

function makeFOM_WEBCAT2(key) {

	var inForm = document.WebcatPlus_Icchi;
	inForm.txt_docid.value = inForm.txt_docid.value + key;
	set2SubmitLinkOut(makeLinkOut("WebcatPlus_Icchi"));
}

/*
        WebcatPlus:連想検索用Formを生成し、検索Queryを送信する。
*/
function makeFOM_WEBCAT() {

        var tmp_str = "";
        var i = 0;

        //文字列を連結する。(半角スペース)
        for(i = 0 ; i < QUERY_KEY.length ; i++){
                QUERY_KEY[i] = QUERY_KEY[i].replace(/\//g,"");
		if (QUERY_KEY[i] != '' && ( QUERY_LGC[i] == 'AND' || QUERY_LGC[i] == 'OR' ) ) {
                        tmp_str = tmp_str + QUERY_KEY[i] + SPLIT_AND;
                }
        }

        //tmp_str = _xdelspace(tmp_str,'top',SPLIT_AND);


	tmp_str = Fcheck(tmp_str);

        //文字列を配列に格納する。
        var str_split =tmp_str.split('');

        // 'yes' or 'no'
        var through = 'no';
        var keythrough = 'no';
	var lgcflg      = 'default';

        //文字列を分割
        tmp_str = "";

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


                if ( through == 'no' && str_split[i] != SPLIT_NOT ) {
			//スペース,縦棒で区切られた文字列を抽出
			if (str_split[i] == SPLIT_OR) {
				//空白で連結
				tmp_str = tmp_str + SPLIT_AND;
			} else {
				tmp_str = tmp_str + str_split[i];
			}
                        if ( str_split[i] == SPLIT_AND || str_split[i] == SPLIT_OR ) {
                                lgcflg = SPLIT_AND;
                        } else {
                                lgcflg      = 'default';
                        }
                        through = 'no';
                } else {
                        if (through == 'no' && ( str_split[i] == SPLIT_NOT ) ) {
                                tmp_str = tmp_str + SPLIT_AND;
                                through = 'yes';
                                keythrough = 'yes';
                                //この分岐で、キーワードを次の論理演算子が来るまで、無視し続ける。
                        } else if (through == 'yes' && ( str_split[i] == SPLIT_NOT ) ) {
                                through = 'yes';
                                keythrough = 'no';
                        } else if (through == 'yes' && ( str_split[i] != SPLIT_NOT ) && str_split[i] != SPLIT_AND && str_split[i] != SPLIT_OR ) {

				if (lgcflg == SPLIT_AND )  tmp_str = tmp_str + str_split[i];
                                through = 'yes';
                                keythrough = 'yes';
                        } else if (keythrough == 'yes' && ( str_split[i] == SPLIT_AND || str_split[i] == SPLIT_OR ) ) {
                                //キーワードのスルーを解除
                                keythrough = 'no';
                                through = 'no';
                                tmp_str = tmp_str + SPLIT_AND;
                        }
                }
        }

	//tmp_str = _xRegConvSpace(tmp_str,SPLIT_AND);
        if (FList != null && FList[0] != '') tmp_str = FBack(tmp_str);
        tmp_str = _xRegConvSpace(tmp_str,SPLIT_AND);


	//送信処理
        document.WebcatPlus.query.value = tmp_str;
        //document.WebcatPlus.submit();

}

function makeFOM_NIIDBR2(key) {
	var inForm = document.NII_DBR;
	//inForm.IS_KEY_S1.value = 'a';
	inForm.IS_KEY_S1.value = $(key).innerHTML;
	
	var ret = makeLinkOut("NII_DBR");
	set2SubmitLinkOut(ret);
}


function makeLinkOut(fomname){
	var encquery = document.forms[fomname].action + "?";
	var tmp_str = "";


	with(document.forms[fomname]){
		for( i=0; i < elements.length; i++ ) {
			if (elements[i].name =='IS_KEY_S1') {
	                        if(i== elements.length-1){
					tmp_str = _xRepAll(elements[i].value,'\"','');
					tmp_str = "\"" + tmp_str + "\"";

                        	        encquery = encquery + elements[i].name + "=" + tmp_str;
                	        } else {
					tmp_str = _xRepAll(elements[i].value,'\"','');
					tmp_str = "\"" + tmp_str + "\"";

        	                        encquery = encquery + elements[i].name + "=" + tmp_str + "&";
	                        }
			} else if (fomname=='KAKEN' && elements[i].name =='IS_TAG_S1') {
				if(i== elements.length-1){
					encquery = encquery + elements[i].name + "=" + "REC";
				} else {
					encquery = encquery + elements[i].name + "=" + "REC" + "&";
				}
			} else {
	                        if(i== elements.length-1){
        	                        encquery = encquery + elements[i].name + "=" + elements[i].value;
                	        } else {
                        	        encquery = encquery + elements[i].name + "=" + elements[i].value + "&";
                        	}

			}
		}
	}

	return encquery;
}
function set2SubmitLinkOut(q){
	document.LINK_OUT.q.value  = encodeURI(q);
	document.LINK_OUT.ln.value = _xGetLang();
	document.LINK_OUT.submit();
}

/*
        NII-DBR:詳細検索用Formを生成し、検索Queryを送信する。
*/
function makeFOM_NIIDBR() {
	/*
		項目間の論理演算子を有効にして、全て連結する。
	*/
        var tmp_str = "";
        var i = 0;
	var j = 1;

        for(i = 0 ; i < QUERY_KEY.length ; i++){
		QUERY_KEY[i] = QUERY_KEY[i].replace(/\//g,"");
		if (QUERY_KEY[i] != '' && QUERY_LGC[j] == 'AND' ) {
                        //tmp_str = tmp_str + QUERY_KEY[j] + SPLIT_AND;
                        if (j != QUERY_KEY.length) {
                                tmp_str = tmp_str + QUERY_KEY[i] + SPLIT_AND;
                        } else {
                                tmp_str = tmp_str + QUERY_KEY[i];
                        }
                } else if (QUERY_KEY[i] != '' && QUERY_LGC[j] == 'OR' ) {
			//tmp_str = tmp_str + QUERY_KEY[j] + SPLIT_OR;
                        if (j != QUERY_KEY.length) {
                                tmp_str = tmp_str + QUERY_KEY[i] + SPLIT_OR;
                        } else {
                                tmp_str = tmp_str + QUERY_KEY[i];
                        }
		} else if (QUERY_KEY[i] != '' && QUERY_LGC[j] == 'NOT' ) {
			if (j != QUERY_KEY.length) {
				if (QUERY_KEY[j] != '') tmp_str = tmp_str + QUERY_KEY[i] + SPLIT_NOT;
				if (QUERY_KEY[j] == '') tmp_str = tmp_str + QUERY_KEY[i];
			} else { 
				tmp_str = tmp_str + QUERY_KEY[i];
			}
		}
		j++;
        }

	//送信処理
        document.NII_DBR.IS_KEY_S1.value = tmp_str;
}



function getKeyArray() {
        var _count = 1;
        var _count_10 = 11;
        var _no = 0;

	var tmp = "";


        var _flg    = PRE_KEY_ID + _count;
        var _flg_10 = PRE_KEY_ID + _count_10;

        var _form = document.IRPFORM;

        if ( $(_flg)!=null ) {
        do{
                if ( $(_flg).value != '' ) {
                        tmp =  _xconvertZtoH( $(_flg).value , '”');
                } else {
                        tmp =  _xconvertZtoH( $(_flg_10).value , '”');
                }

		QUERY_KEY[_no] = tmp;

                _no++;
                _count++;
                _count_10++;

		_flg    = PRE_KEY_ID + _count;
		_flg_10 = PRE_KEY_ID + _count_10;
        } while( $(_flg_10) != null );
        }

}

function getTagArray() {
        var _count = 1;
        var _count_10 = 11;
        var _no = 0;

        var _flg    = PRE_TAG_ID + _count;
        var _flg_10 = PRE_TAG_ID + _count_10;

        var _form = document.IRPFORM;

        if ( $(_flg)!=null ) {
        do{
                if ( $(_flg).value != '' ) {
                        QUERY_TAG[_no] = $(_flg).value;
                } else {
                        QUERY_TAG[_no] = $(_flg_10).value;
                }
                _no++;
                _count++;
                _count_10++;

                _flg    = PRE_TAG_ID + _count;
                _flg_10 = PRE_TAG_ID + _count_10;

        } while( $(_flg_10) != null );
        }

}

function getLgcArray() {
        var _count = 1;
        var _count_10 = 11;
        var _no = 0;

        var _flg    = PRE_LGC_ID + _count;
        var _flg_10 = PRE_LGC_ID + _count_10;

        var _form = document.IRPFORM;

        if ( $(_flg)!=null ) {
        do{
                if ( $(_flg).value != '' ) {
                        QUERY_LGC[_no] = $(_flg).value;
                } else {
                        QUERY_LGC[_no] = $(_flg_10).value;
                }
                _no++;
                _count++;
                _count_10++;

                _flg    = PRE_LGC_ID + _count;
                _flg_10 = PRE_LGC_ID + _count_10;

        } while( $(_flg_10) != null );
        }

}







