﻿  //HeartRails ExpressＡＰＩを利用しています。
 
	function ekiSearch (){
　　　　
	//mapクリックを無効にします。	
	google.maps.event.clearListeners(map, 'click');

        //基本マーカー以外全てを削除します。
        　del_all();	


	// 画面表示切替
	
	//題名欄に「目的地の検索」をしている旨の表示をします
	$('kekka_daimei').innerHTML = '<b>最寄駅の検索</b>'; 
	//$('page_navi').innerHTML     = '';  //ページナビを消去する
			
	//結果欄と一覧表欄に「只今　目的地設定中の表示をします
	$('yado_kekka').innerHTML = '<b>只今</b>'
	$('yado_ichiran').innerHTML = '<p style="padding:25px"><img src="scr_hol/ajax_load_orange.gif" \/><br />検索中...<\/p>';
	
	// API リクエストURL 生成
	var url = 'http://express.heartrails.com/api/json'
		+ '?method=getStations'
		+ '&x=' + BasemyMarkPosition.lng()
		+ '&y=' + BasemyMarkPosition.lat()
		+ '&jsonp=my_callback'
	
	// リクエスト実施
	var script     = document.createElement( 'script' );
	script.type    = 'text/javascript';
	script.charset = 'utf-8';
	script.src     = url;
	document.getElementsByTagName("head")[0].appendChild( script );
        // 成功すると下の my_callback() が実行される
	
	}
		

	

		//----cgiから受信したデータを加工します
function my_callback (json){
	//alert('コールバック成功!!');
	//近くに駅が無い場合はコメント表示後、目標検索にもどります
	if(!json.response.station.length){
		//基本マーカーに情報ウィンドウを設定します。
		BasemyInfo = '<div style="background-color:#ffc0cb;font-size:8pt;padding:4px;">検索の結果このポイントでは見つかりませんでした。<br>マーカーをドラッグし移動させてください。<br>クリック移動も可能になります。</div>';
		$('yado_ichiran').innerHTML ='';
	
			
	}

	//検索結果が ０件の以外の場合の処理を行います。
	else
	{

	// root node 省略
	var tree = json.response ;
	var view_count =  tree.station.length ;//view_count=実表示件数
	
	var eki_name = new Array ();  
	var eki_prev = new Array ();  
	var eki_next = new Array ();  
	var eki_line = new Array (); 
	var eki_x    = new Array ();  
	var eki_y = new Array ();  
	var eki_dist = new Array ();  
	var eki_pref = new Array (); 

	for (var i=0; i < view_count; i++){
	eki_name[i] = tree.station[i].name ;
	eki_prev[i] = tree.station[i].prev;  
	eki_next[i] = tree.station[i].next;  
	eki_line[i] = tree.station[i].line; 
	eki_x[i]    = tree.station[i].x;  
	eki_y[i]    = tree.station[i].y;  
	eki_dist[i] = tree.station[i].distance;  
	eki_pref[i] = tree.station[i].prefecture; 
	}

		
	 		
		var eki_ichiran_html = ''; //eki_ichiran_htmlをローカル変数として設定

		

		//view_count=実表示件数
          	for (var i = 0; i < view_count; i++ ) { 
		eki_ichiran_html += '<li id="mark_' + i + '" style="padding-right:2px;"><a href="javascript:void(0)" onclick="this.blur()" >' + eki_name[i] + '駅</a>　　' + eki_dist[i] + ' <br>（' + eki_line[i] + '）</li>';
		   }
		
		
	
		//各欄に結果を表示するコマンド
		$('kekka_daimei').innerHTML = '<b>最寄の駅検索結果</b>'; 
		$('page_navi').innerHTML ='<b>検索結果</b>'
		$('yado_kekka').innerHTML =  view_count + '件見つかりました';
		$('yado_ichiran').innerHTML = eki_ichiran_html; //対象駅検索結果を設定
		


		
		
//-----------------地図　作成----------------------------------------------------------


//地図をクリックすると情報ウィンドウを閉じるよう再設定します。
	 google.maps.event.addListener(map, 'click', function(event){
                myinfowindow.close(map);
	});


//基本のマーカー(BasemyMarker)をクリックすると情報を表示するように設定する。
	google.maps.event.addListener(BasemyMarker, 'click', function(){
	BaseshowInfo();
	});
		
//情報ウィンドウの内容を設定します(view_count=実表示件数)

	for( var i = 0; i < view_count; i++ ){
		myInfo[i]=('<table width="200" height="60" bgcolor="#cee7b5"><tr><td style="padding:8px;font-size:8pt"><div><b>'  + eki_name[i] + '駅</b></div><div>('  + eki_line[i] +  ')</div><div>この駅までの距離： ' + eki_dist[i] + '</div></td></tr></table>');
		}         		
			

// 各地点に中マーカー(A～J)位置を緯度、経度で設定します。
	for( var i = 0; i < view_count; i++ )  //view_count=実表示件数
          		{ 
		myMarkPosition[i] =  new google.maps.LatLng(eki_y[i],eki_x[i]);
	}


// 各中マーカー(A～J)に情報ウィンドウを表示させます。
       function showInfo(num){
        var hyoji = function()
	   {
		myinfowindow.setContent(myInfo[num]);
		myinfowindow.open(map,myMarker[num]);
		map.panTo(myMarkPosition[num]);
           };

        google.maps.event.addListener(myMarker[num], 'click', hyoji);
   

        var mark_link = document.getElementById("mark_" + num );
	if(mark_link){mark_link.onclick = hyoji;};
     
        }


// 各中マーカー(A～J)を地図に設定します。
     for(i=0; i < myMarkPosition.length ; i++){
        myMarker[i] = new google.maps.Marker({
        position:myMarkPosition[i], 
	icon: Mkimage[i],
	shadow : Mkshadow,
        map: map
	});   
	showInfo(i);
      };


    
 
	//基本マーカーに情報ウィンドウを設定します。
　　　　 BasemyInfo = '<div style="background-color:#ffff00;font-size:8pt;padding:4px;">検索の結果 <b>' + view_count +'件</b> 見つかりました。<br>別の場所を検索する場合は<br>マーカーをドラッグし移動させてください。<br>クリック移動も可能になります。</div>';

//-----------------地図　作成終了----------------------------------------------------------

	//検索結果が0以外の場合の処理を終了します
                }

	//検索ボタンのフリーズ解除
		Form.enable($('fe'));
		//情報ウィンドウを表示し、obSearch();へ
		show_makinfo();

        //----my_callbackで受信したデータ加工を終了します

 		}
		
	
		
	
	

    
    


