/***************************************************************************************/
//　タイトル    ：Sawai Medical Site TOPページ サジェスト操作用JS
//　ファイル名  ：suggest_ctl.js
//　作成日　　　：2008/02/12	hyoutan-ishi　新規作成
//　変更履歴　　：2010/11/16	kurokawa　サジェストリストXSS対応
//　概要　　　　：
//　備考　　　　：
//　　　　　　　：utf-8
/***************************************************************************************/
/*
function gsc_hide(elt)
{
    if (elt) elt.style.display = 'none';
}
*/

//**** 変数 ****
//--------------------------------------
//選択している行インデックス
var SelectedIndex = -1;
//--------------------------------------

function getSelectedIndex() {
	return SelectedIndex;
}

//--------------------------------------
// 選択行インデックスリセット
//--------------------------------------
function resetIndex() {
	SelectedIndex = -1;
}


function gsc_ishidden(elt)
{
    return elt.style.display == 'none';
}


function gsc_show(elt)
{
    if (elt) elt.style.display = 'block';
}



//================================================
// マウスオーバー処理
//--------------------------------------
// id   :結果表示エリアID
// qId  :キーワードテキストボックスID
// idx  :行index
//================================================
function gsc_mouseover(id, qId, idx)
{
	//エレメント取得----------結果エリア
    elt = document.getElementById(id);
	
	//選択行indexセット----
    SelectedIndex = idx;

	//エレメント取得----------テキストボックス
    qElt = document.getElementById(qId);
    qElt.focus();

	//リストの値取得
	//var elt_child = elt.childNodes;
	//var elt_val = elt_child[idx].childNodes[0].innerHTML;

	//オンマウス中の候補をキーワードにセット
    //qElt.value = elt_val;

	//ハイライト処理-----------------------
    gsc_highlightsel(elt);
    
}

//================================================
// マウスアウト処理
//--------------------------------------
// id   :結果表示エリアID
// qId  :キーワードテキストボックスID
// idx  :行index
//================================================
function gsc_mouseout(id, qId, idx)
{
	//エレメント取得----------結果エリア
    elt = document.getElementById(id);
	//選択行indexクリア----
	resetIndex();

	//エレメント取得----------テキストボックス
    qElt = document.getElementById(qId);
    qElt.focus();
    
	//オンマウス中の候補をキーワードにセット
    //qElt.value = document.getElementById('suggest_key').value;
	
	//ハイライト処理
    gsc_highlightsel(elt);
    
}


//================================================
// マウスクリック処理
//--------------------------------------
// id   :結果表示エリアID
// qId  :キーワードテキストボックスID
// idx  :行index
//================================================
function gsc_mouseclick(id, qId, idx)
{
	//エレメント取得----------結果エリア
    elt = document.getElementById(id);
	//エレメント取得----------テキストボックス
    qElt = document.getElementById(qId);

	//リストの値取得--------------------------
	var elt_child = elt.childNodes;
	var elt_val = elt_child[idx].childNodes[0].innerHTML;

	//サジェストキーワードセット
	//2010-11-16 kurokawa 修正START
	//qElt.value = elt_val;
	qElt.value = elt_val.unescapeHTML();
	//2010-11-16 kurokawa 修正END

	//検索実行
	switch (qId) {
		case 'tx_kw1':
			document.form1.bt_search1.click();
			break;
		case 'tx_kw2':
			//製品名
			document.form1.bt_search21.click();
			break;
		case 'tx_kw3':
			//先発名
			document.form1.bt_search31.click();
			break;
		case 'tx_kw4':
			//一般名
			document.form1.bt_search41.click();
			break;
		case 'tx_kw5':
			//識別コード
			document.form1.bt_search51.click();
			break;
		default:
			break;
	}

	document.getElementById('suggest_key').value = elt_val;
	//フォーカスセット
	qElt.focus();

}


//================================================
// ↑キー押下時処理
//--------------------------------------
// elt  :結果表示エリア
// qId  :キーワードテキストボックス
//================================================
function gsc_handleup(elt, qElt)
{
	//結果行数--------------------------
	var divs = elt.getElementsByTagName('div');
	var numResults = divs.length;
	
    if (numResults > 0 && gsc_ishidden(elt)) {
        gsc_show(elt);
        return;
    } else {
    	numResults--;
    }

    if (SelectedIndex == 0) {
    	//選択行index = 0
		resetIndex(); //選択行indexクリア
		qElt.value = document.getElementById('suggest_key').value;
    }else if (SelectedIndex < 0){
    	//行未選択時
        SelectedIndex = numResults - 1;
    }else{
    	//その他
        SelectedIndex--;
	}
	
	//ハイライト処理
    gsc_highlightsel(elt, qElt);
}

//================================================
// ↓キー押下時処理
//--------------------------------------
// elt  :結果表示エリア
// qId  :キーワードテキストボックス
//================================================
function gsc_handledown(elt, qElt)
{

	//結果行数--------------------------
	var divs = elt.getElementsByTagName('div');
	var numResults = divs.length;

    if (numResults > 0 && gsc_ishidden(elt)) {
        gsc_show(elt);
        return;
    } else {
    	numResults--;
    }

    if (SelectedIndex == numResults - 1) {
		//最終行選択時--
		resetIndex(); //選択行indexクリア
		qElt.value = document.getElementById('suggest_key').value;
    } else if (SelectedIndex < 0) {
		//未選択時-----
		SelectedIndex = 0;
    } else {
    	//その他-------
        SelectedIndex++;
	}
	
	//ハイライト処理---------------------
    gsc_highlightsel(elt, qElt);
    
}



//================================================
// 選択行ハイライト処理
//--------------------------------------
// elt  :結果表示エリア
// qId  :キーワードテキストボックス
//================================================
function gsc_highlightsel(elt, qElt)
{
	//結果リスト
    var divs = elt.getElementsByTagName('div');
	var elt_child = elt.childNodes;

    for (i = 0; i < divs.length; i++) {
        if (i == SelectedIndex) {
            divs[i].className = 'srs';
            
            //elt.tempQuery = elt_child[i].childNodes[0].innerHTML;
            /*elt.tempQuery = elt.results[i];*/

            if (qElt) {
                //qElt.value = elt.results[i];
                qElt.value = elt_child[i].childNodes[0].innerHTML;
                if (qElt.createTextRange) {
                    r = qElt.createTextRange();
                    //r.moveStart('character', elt.currentQuery.length);
                    r.moveStart('character', qElt.value.length);
                    r.moveEnd('character', qElt.value.length);
                    r.select();
                }
            }
        } else {
            divs[i].className = 'sr';
        }
    }
}

