//XMLHttpRequestオブジェクト生成
var xmlHttp = createXmlHttpRequest();

//郵便番号テキストフィールドのonkeyupイベントで実行される処理。リクエストを生成し、レスポンスを取得
function ajax_Suggest(keyword, test_dir){
  this.test_dir = test_dir;
  
  //リクエストをオープンする。単に設定がおこなわれるだけで実際の送受信はまだ発生しない
  var url = '/' + window.test_dir + 'search_backend.php?q='+encodeURIComponent(keyword);

  xmlHttp.open('GET', url, true);

  //バックエンドプログラムからレスポンスを受信し処理を行うためのコールバック関数を用意しておく
  xmlHttp.onreadystatechange = handleHttpEvent;

　//リクエストを送信
  xmlHttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlHttp.send(null);

}

//HTTPレスポンスデータを処理し、XMLを解析しフォームに値をはめこむコールバック関数
function handleHttpEvent(){
    //応答が帰ってきた(xmlHttp.readyState == 4)場合で、サーバ処理が成功(xmlHttp.status == 200)した場合
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
        // サーバからの応答をXMLDocumentオブジェクトとして取得
        // ここからはXML解析とフォームにデータをはめ込む処理
        var xmlDoc = xmlHttp.responseXML;
        if (xmlDoc.documentElement){
            //XMLをパース
            var rosen = xmlDoc.getElementsByTagName("rosen").item(0).firstChild;
            var eki = xmlDoc.getElementsByTagName("eki").item(0).firstChild;
            var keyword = xmlDoc.getElementsByTagName("keyword").item(0).firstChild;
            //バックエンドから返ってきたステータスがokの場合
            var suggestBox = "";
            if (rosen.data > 0) {

                //各データをsuggestBoxに入力
                suggestBox += "<ol>\n";
                suggestBox += "<li><strong>路線検索</strong></li>\n";
                
                for (i=1 ; i<=rosen.data ; i++) {
                    var rosen_name = xmlDoc.getElementsByTagName("rosen_name_"+i).item(0).firstChild;
                    var rosen_id = xmlDoc.getElementsByTagName("rosen_id_"+i).item(0).firstChild;
                    suggestBox += "<li><a href='/" + window.test_dir + "rosen/"+rosen_id.data+"/'>"+rosen_name.data+"</a></li>\n";
                }
        
                suggestBox += "</ol>\n";        
            }

            if (eki.data > 0) {

                //各データをsuggestBoxに入力
                suggestBox += "<ol>\n";
                suggestBox += "<li><strong>駅検索</strong></li>\n";
                
                for (i=1 ; i<=eki.data ; i++) {
                    var e_rosen_name = xmlDoc.getElementsByTagName("e_rosen_name_"+i).item(0).firstChild;
                    var e_rosen_id = xmlDoc.getElementsByTagName("e_rosen_id_"+i).item(0).firstChild;
                    var eki_name = xmlDoc.getElementsByTagName("eki_name_"+i).item(0).firstChild;
                    var rosen_eki_id = xmlDoc.getElementsByTagName("rosen_eki_id_"+i).item(0).firstChild;
                    suggestBox += "<li><a href='/" + window.test_dir + "eki/"+e_rosen_id.data+"/"+rosen_eki_id.data+"/'>"+eki_name.data+"</a> <span>[<a href='/" + window.test_dir + "rosen/"+e_rosen_id.data+"/'>"+e_rosen_name.data+"</a>]<span></li>\n";
                }
        
                suggestBox += "</ol>\n";        
            }

            //バックエンドから返ってきたステータスがNGの場合
            if (rosen.data != 0 || eki.data != 0) {
                document.getElementById("Suggest").innerHTML = suggestBox;
                document.getElementById("Suggest").style.display = "block";
                return false;
            } else {
                document.getElementById("Suggest").innerHTML = "";
                document.getElementById("Suggest").style.display = "none";
                return false;
            }


        } else {
    
            document.getElementById("Suggest").innerHTML = "<ol><li>"+xmlDoc.documentElement+"</li></ol>";
            document.getElementById("Suggest").style.display = "block";
    
        }
    }
}

//ブラウザ別にXMLHttpRequestオブジェクトを生成
function createXmlHttpRequest(){
  var xmlhttp;
  //IEかどうか判定
  /*@cc_on
  @if (@_jscript_version >= 5)
  try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
    try{
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(ex){
      xmlhttp = false;
    }
  }
  @else
    xmlhttp = false;
  @end @*/
　//IE以外
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
    try{
      xmlhttp = new XMLHttpRequest();
      xmlhttp.overrideMimeType("text/xml");
    }catch(e){
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

