/**
 *
 * 関数名：trim()
 *
 * 処理概要：文字列の最初と最後の半角・全角スペースを削除する
 *
 * @param value 対象文字列
 * @return 削除後の文字列を返す
 *
 * @author A.Kawashimo
 * @version 1.0 2001/04/05
 *
 */
function trim(value)
{
	var re1 = new RegExp("^(\\s|　)*(.*)$", "");
	var re2 = new RegExp("^(.*)(\\s|　)+$", "");
	var result = value.replace(re1, "$2");
	while (re2.test(result))
	{
		result = result.replace(re2, "$1");
	}
	return result;
}



/**
 *
 * 関数名：spaceCompress(value)
 *
 * 処理概要：スペース（全角、半角）が複数続いている場合は、１つにする
 *
 * @param value 対象文字列
 * @return 変換後の文字列を返す
 *
 * @author H.Endoh
 * @version 1.0 2004/09/16
 *
 */
function spaceCompress(value)
{
	var cnt;
	var str;
	var c;

	cnt = 0;
	str = '';
	for (i = 0; i < value.length;i++) {
		c = value.charAt(i);
		if ((c == ' ') || (c == '　')) {
			cnt = cnt + 1;
		} else {
			cnt = 0;
		}
		if (cnt == 0) {
			str = str + c;
		} else if(cnt == 1) {
			str = str + ' ';
		}
	}
	return str;
}



/**
 *
 * 関数名：insertOperator(kwd)
 * 処理概要：
 * 		２語句以上のクエリで、かつクエリ演算子が何もない場合
 * 		ANDをクエリ語句間に挿入する <br>
 * 
 * @param	kwd	編集前のキーワード
 * @return	編集したキーワード
 *
 * @author H.Endoh
 * @version 1.0 2004/09/16
 *
 */
function insertOperator(kwd) {
	var word;
	var t_kwd;
	var t_kwd2;
	var n_kwd;
	var len;
	var c;
	var cnt;

	t_kwd = kwd;

	// 括弧"(", ")"があるかを調べる。もし括弧があれば、すでにAdvanceモードなので
	// ANDを挿入せずにreturnする。
	t_kwd = t_kwd.replace(/（/g,'(');
	t_kwd = t_kwd.replace(/）/g,')');
	for (i = 0; i < t_kwd.length;i++) {
		c = t_kwd.charAt(i);
		if ((c == '(') || (c == ')')) {
			return kwd;
		}
	}

	// スペースが複数続いている場合は、１つにする
	t_kwd = spaceCompress(t_kwd);

	// 英数字のA,N,D,O,R,Tをすべて半角大文字に変換する。
	t_kwd = t_kwd.replace(/Ａ/g,'A').replace(/a/g, 'A').replace(/ａ/g,'A');
	t_kwd = t_kwd.replace(/Ｎ/g,'N').replace(/n/g, 'N').replace(/ｎ/g,'N');
	t_kwd = t_kwd.replace(/Ｄ/g,'D').replace(/d/g, 'D').replace(/ｄ/g,'D');
	t_kwd = t_kwd.replace(/Ｏ/g,'O').replace(/o/g, 'O').replace(/ｏ/g,'O');
	t_kwd = t_kwd.replace(/Ｒ/g,'R').replace(/r/g, 'R').replace(/ｒ/g,'R');
	t_kwd = t_kwd.replace(/Ｔ/g,'T').replace(/t/g, 'T').replace(/ｔ/g,'T');

	// キーワードの二つ目が検索オペレータAND, OR, ANDNOTかどうか調べる
	word = t_kwd.split(' ');
	cnt = 0;
	for (i=0; i<word.length; i++) {
		if (cnt == 1) {
			if (word[i] == 'AND' || word[i] == 'OR' || word[i] == 'ANDNOT') {
				return kwd;
			}
		}
		cnt = cnt + 1;
	}

	// キーワード入力の２つ目が、検索オペレータのAND、OR、ANDNOTでなければ、
	// スペースで区切られた各キーワードの間にANDを挿入する。
	cnt = 0;
	for (i=0; i<word.length; i++) {
		if (cnt == 0) {
			n_kwd = word[i];
		} else {
			n_kwd = n_kwd + " AND " + word[i];
		}
		cnt = cnt + 1;
	}

	return n_kwd;
}



/**
 *
 * 関数名：kwdCheck(kwd)
 * 処理概要：
 * 		LV優先検索をするための文字列がキーワードに含まれているかをチェックする
 * 
 * @param	kwd	キーワード（検索対象文字列）
 * @return	LV優先検索を行う場合は、Trueを返す
 *
 * @author H.Endoh
 * @version 1.0 2004/09/16
 *
 */
function kwdCheck(kwd)
{

	kWord = new Array();
	kWord[1] = 'ＬＶ';
	kWord[2] = 'アンシャンテ';
	kWord[3] = '移送サービス';
	kWord[4] = 'ウェルキャブ';
	kWord[5] = '介護タクシー';
	kWord[6] = '回転シート';
	kWord[7] = 'スライドアップシート';
	kWord[8] = 'スロープ';
	kWord[9] = 'セカンドシートタイプ';
	kWord[10] = 'セルフトランスポート';
	kWord[11] = '脱着シート';
	kWord[12] = 'チェアキャブ';
	kWord[13] = 'ドライビングヘルパー';
	kWord[14] = 'ドライブギア';
	kWord[15] = 'ハンディキャブ';
	kWord[16] = 'フレンドマチック';
	kWord[17] = 'ライフケアビークル';
	kWord[18] = 'リフター';
	kWord[19] = 'リフト';
	kWord[20] = '運転補助装置';
	kWord[21] = '介護保険';
	kWord[22] = '片麻痺';
	kWord[23] = '着物';
	kWord[24] = '車いす';
	kWord[25] = '車椅子';
	kWord[26] = '車イス';
	kWord[27] = '車ｲｽ';
	kWord[28] = '頚椎損傷';
	kWord[29] = '怪我';
	kWord[30] = '手動運転装置';
	kWord[31] = '助手席';
	kWord[32] = '身障者';
	kWord[33] = '脊椎損傷';
	kWord[34] = '妊娠';
	kWord[35] = '脳梗塞';
	kWord[36] = '半身麻痺';
	kWord[37] = '福祉';
	kWord[38] = '老人';
	kWord[39] = 'ｌｖ';
	kWord[40] = 'LV';
	kWord[41] = 'ｱﾝｼｬﾝﾃ';
	kWord[42] = '移送ｻｰﾋﾞｽ';
	kWord[43] = 'ｳｪﾙｷｬﾌﾞ';
	kWord[44] = '介護ﾀｸｼｰ';
	kWord[45] = '回転ｼｰﾄ';
	kWord[46] = 'ｽﾗｲﾄﾞｱｯﾌﾟｼｰﾄ';
	kWord[47] = 'ｽﾛｰﾌﾟ';
	kWord[48] = 'ｾｶﾝﾄﾞｼｰﾄﾀｲﾌﾟ';
	kWord[49] = 'ｾﾙﾌﾄﾗﾝｽﾎﾟｰﾄ';
	kWord[50] = '脱着ｼｰﾄ';
	kWord[51] = 'ﾁｪｱｷｬﾌﾞ';
	kWord[52] = 'ﾄﾞﾗｲﾋﾞﾝｸﾞﾍﾙﾊﾟｰ';
	kWord[53] = 'ﾄﾞﾗｲﾌﾞｷﾞｱ';
	kWord[54] = 'ﾊﾝﾃﾞｨｷｬﾌﾞ';
	kWord[55] = 'ﾌﾚﾝﾄﾞﾏﾁｯｸ';
	kWord[56] = 'ﾗｲﾌｹｱﾋﾞｰｸﾙ';
	kWord[57] = 'ﾘﾌﾀｰ';
	kWord[58] = 'ﾘﾌﾄ';
	kWord[59] = 'lv';
	kWord[60] = 'エルグランドステップタイプ';
	kWord[61] = 'セレナステップタイプ';
	kWord[62] = 'キャラバンタイプ１';
	kWord[63] = 'キャラバンタイプ２';
	kWord[64] = 'キューブキュービックフラップシート';
	kWord[65] = 'キューブフラップシート';
	kWord[66] = 'ｴﾙｸﾞﾗﾝﾄﾞｽﾃｯﾌﾟﾀｲﾌﾟ';
	kWord[67] = 'ｾﾚﾅｽﾃｯﾌﾟﾀｲﾌﾟ';
	kWord[68] = 'ｷｬﾗﾊﾞﾝﾀｲﾌﾟ1';
	kWord[69] = 'ｷｬﾗﾊﾞﾝﾀｲﾌﾟ2';
	kWord[70] = 'ｷｭｰﾌﾞｷｭｰﾋﾞｯｸﾌﾗｯﾌﾟｼｰﾄ';
	kWord[71] = 'ｷｭｰﾌﾞﾌﾗｯﾌﾟｼｰﾄ';

	var word;
	var t_kwd;
//	var t_kwd2;
//	var cnt;

	t_kwd = kwd;

//	// 完全一致検索（始まり）////////////////
//	t_kwd = t_kwd.replace(/　/g,' ');
//
//	// 括弧をスペースに置換する
//	t_kwd = t_kwd.replace(/（/g,' ');
//	t_kwd = t_kwd.replace(/）/g,' ');
//	t_kwd = t_kwd.replace(/\(/g,' ');
//	t_kwd = t_kwd.replace(/\)/g,' ');
//
//	// スペースが複数続いている場合は、１つにする
//	t_kwd = spaceCompress(t_kwd);
//	t_kwd = trim(t_kwd);
//	if (t_kwd.length == 0) {
//		return false;
//	}
//
//	// 単語で分割した文字列から、キーワードがないか探し出す
//	word = t_kwd.split(' ');
//
//	for (i=0; i<kWord.length; i++) {
//		for (j=0; j<word.length; j++) {
//			if (word[j] == kWord[i]) {
//				return true;
//			}
//		}
//	}
//	// 完全一致検索（終わり）////////////////


	// 部分一致検索（始まり）////////////////
	for (i=0; i<kWord.length; i++) {
		if (t_kwd.indexOf(kWord[i])!= -1 ) {
			return true;
		}
	}
	// 部分一致検索（終わり）////////////////

	return false;
}



/**
 *
 * 関数名：addLV()
 *
 * 処理概要：LVを優先に検索するために、検索キーワードを編集する
 *
 * @param value 編集対象キーワード
 * @return 編集したキーワード
 *
 * @author H.Endoh
 * @version 1.0 2004/09/13
 *
 */
function addLV(value)
{
	var strLV = 'LV';

//	value = value.replace('　',' ').trim();
	value = value.replace(/　/g,' ');
	value = trim(value);
	if (value == ''){
		return value;
	} else {
		value = insertOperator(value);
		value = '(' + strLV + ' AND (' + value + ')) OR (' + value + ')';
		return value;
	}
}



/**
 *
 * 関数名：clickSearchLV(form)
 *
 * 処理概要：検索ボタン押下時の処理
 *			 LVを優先表示させる為の特殊キーワードを付加して、アプリケーションを起動する
 *
 * @param form  keyword,keyword2を定義しているform
 * @return true
 *
 * @author H.Endoh
 * @version 1.0 2004/09/14
 *
 */
function clickSearchLV(form) {

	form.keyword.value = addLV(form.keyword2.value);

	form.App_ID.value = "WR10F110_02";
	form.action="http://www.nissan.co.jp/SITESEARCH/SearchServlet";

//	return submitOneTime();
	return true;
}



/**
 *
 * 関数名：clickSearchKwLV(form)
 *
 * 処理概要：検索ボタン押下時の処理
 *			 検索条件にLV関連のキーワード（例：アンシャンテ）が入力されていた場合、
 *			 LVを優先表示させる為の特殊キーワードを付加して、アプリケーションを起動する。
 *
 * @param form  keyword,keyword2を定義しているform
 * @return true
 *
 * @author H.Endoh
 * @version 1.0 2004/09/16
 *
 * @author H.Endoh
 * @version 1.0 2004/09/16
 *
 */
function clickSearchKwLV(form) {

	var rtn;

	rtn = kwdCheck(form.keyword2.value);
	if (rtn ==true) {
		form.keyword.value = addLV(form.keyword2.value);
	} else {
		form.keyword.value = form.keyword2.value;
	}
	form.App_ID.value = "WR10F110_03";
	form.action="http://www.nissan.co.jp/SITESEARCH/SearchServlet";

//	return submitOneTime();
	return true;
}
