﻿  //Yahoo!デベロッパーネットワークWebサービスＡＰＩを利用しています。
  //http://developer.yahoo.co.jp/map/localsearch/V1/localsearch.html
  //施設のURLが少ないためリンクはしていません。2008/01/25
 
	
		
	
	
function shisetsuSearch (start_page){
   //利用する変数を設定します。
     var str_html = ""   ;                  //htmlエラー表示の取得
     var res_count = 0  ;                  //対象施設の該当件数を取得
     var view_count = 0  ;                 //このページの表示件数を取得
     var shisetsu_name = new Array ();         //各施設名を取得
     var shisetsu_address = new Array ();        //各施設の簡単な住所を取得
     var shisetsu_x = new Array ();           //各緯度を取得
     var shisetsu_y = new Array ();           //各経度を取得
     var start = 1 ;				//開始ページの初期値をページ目に設定します
     var result_html = "";                  //html検索結果を表示する
     var pagenavi_html = "";                //htmlページナビゲーションを表示する
     var shisetsu_ichiran_html = "";        //htmlで施設一覧を作成
      
      
    //世界測地系の緯度経度を示します。
     var wy = myLatlng[0];
     var wx = myLatlng[1];
         
　　//開始位置の設定、クエリの要素を設定します。
	
	start = (start_page -1) * 10 + 1;
	$('fy').b.value = start;
	$('fy').lon.value = wx;
	$('fy').lat.value = wy;

	//題名欄に「近隣施設の検索」をしている旨の表示をします
	$('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>';
	var myAjax = new Ajax.Request(
	'search_shisetsu.cgi',
	{    
			method: 'post', 
			postBody: Form.serialize($('fy')),
			onComplete:function(request) {   
			  $('yado_ichiran').innerHTML = '<p style="padding:8px"><b>読み込み終了しました</b></p>';
				showResponse (request);
	　		  },   
	                onSuccess: function(request) {   
			  $('yado_ichiran').innerHTML = '<p style="padding:8px"><b>読み込み成功しました</b></p>';
	                  },   
	                onFailure: function(request) {   
	                  request.transport.abort();
			  },   
	                onException: function (request) {   
	                  request.transport.abort();
			  }
	}
	);

	//----cgiに必要データを送信終了





	//----cgiから受信したデータを加工します
	function showResponse (request){
     //cgiデータをcsv方式で受信します
	var rcvdata = new Array();
	rcvdata = request.responseText.split("%,") ;
	
		
	//検索結果が ０件の場合は目的地検索「obSearch()」を実行します
	if(rcvdata[1] == 0 || rcvdata[1] =="")
	{
		obSearch();

	}
	
        //検索結果が ０件の以外の場合の処理を行います。
	
 	else
	
	{

	
      
     //各変数に値を設定します
	 str_html = rcvdata[0] ;
     res_count = parseInt(rcvdata[1]) ;
	 view_count = parseInt(rcvdata[2]) ;
	 
	  //表示件数が１０件に満たない場合はview_countを変更します。
	 hasukensu = 0 ;
	 hasukensu =  res_count- (start-1) ;
	 if( hasukensu < 10 )
	   {
	   view_count = hasukensu ;
	   }

	 
	 
	 
	 for( var i = 0; i < view_count; i++ ) 
		 {
	      shisetsu_name[i]      = rcvdata[(i * 4) + 3];           //各施設名を取得
	      shisetsu_address[i]   = rcvdata[(i * 4) + 4];           //各施設写真の住所を取得
	      shisetsu_x[i]         = rcvdata[(i * 4) + 5];           //各緯度を取得
	      shisetsu_y[i]         = rcvdata[(i * 4) + 6];           //各経度を取得
	       }
	   
	
//検索結果が０件の場合はobsearch(0)へ移動するようにしています。
	
//表示可能な最大ページ数を計算します
	var max_page = (res_count%10 > 0) ? parseInt(res_count/10) + 1 : parseInt(res_count/10);//ページ数


//検索結果が１００件を超える場合は１００件に制限します
	max_page = (max_page > 10 ) ? 10 : max_page ;  //ページを10(１００件)に制限する

//掲載が２ページ以上ある場合はページナビゲーションを設定します
	pagenavi_html =""
	if (start_page > 1)
		{  
		pagenavi_html += '<a href="javascript:void(0)" onclick="shisetsuSearch (' + (start_page - 1) + ');">←前へ</a>　';								}
	for (var i = 1; i <= max_page; i++ )
		{
		if (start_page == i)
			{
			pagenavi_html += '<span id="page_navi" style="background-color:#fff000;">' + i + '</span>　';
			}
		else
			{
			pagenavi_html += '<a href="javascript:void(0)" onclick="shisetsuSearch (' + i + ');">' + i + '</a>　';
			}
		}
	if (start_page < max_page && 1 <= max_page )
		{
		  pagenavi_html += '<a href="javascript:void(0)" onclick="shisetsuSearch (' + (start_page + 1) + ');">次へ→</a>';
		
		}
        		
//検索結果を表示します。
//検索結果res_countが ０件の場合は目的地検索「obSearch(0)」を実行できるようにします
	
	result_html += '<div>検索結果：' + res_count + ' 件<span>（うち ' + ((start_page-1)*10 + 1) + '－' + ((start_page-1)*10+view_count) + '件を表示）</span></div>';

		
//このページの検索状態表示と施設リストを作成します
	shisetsu_ichiran_html = "<div>検索状態 :　" + str_html + "</div>";
	
	
	shisetsu_ichiran_html += '<span id="mark_'+ view_count + '" style="padding:6px;"><a href="javascript:void(0)" onclick="this.blur()" ><b>目標地点</b></a></span><br>';
	
	
	
	for (var i = 0; i < view_count; i++ )                           //view_count=実表示件数
           {
	shisetsu_ichiran_html += '<li id="mark_'+ i + '" style="padding-right:2px;"><a href="javascript:void(0)" onclick="this.blur()" >' + shisetsu_name[i] + '</a></li>';
	   }
	
	

//各欄に結果を表示するコマンド
	
	$('kekka_daimei').innerHTML = '<b>施設検索結果</b>'; 
	$('page_navi').innerHTML = pagenavi_html;  //ページナビを設定
	$('yado_kekka').innerHTML = result_html;   //施設結果件数を設定
	$('yado_ichiran').innerHTML = shisetsu_ichiran_html; //施設検索結果を設定
	
	
		
	//今までに作成されたオーバーレイ(マーカー、アイコン等)を削除します
        map.clearOverlays();
	



//------------------------------地図本文-----------------------------------------------
	
//各データを元に地図中のアイコンを設定します。
	
		var baseIcon = new GIcon();
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);
	
	      
// 予め設定された位置を中央にに地図を表示します。Center the map on Palo Alto
//デフォルトはmapに設定します。
		//var map = new GMap2(document.getElementById("map"));
		//map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());

//選択した距離によって施設掲載地図の縮尺を決定します
		//show_rangeが何らかの理由で設定されていないときは１０とします。
	//	if(!show_range.innerHTML)
	//	{
	//		show_range.innerHTML = "10"
	//	}
	//	map.setCenter(new GLatLng(wy,wx), parseInt(show_range.innerHTML));
	//	map.setMapType(G_MAP_TYPE);
	      
	    

		
//------------------------------地図本文終了-------------------------------------------------------------------
	

	
//-----------------地図　createMarker----------------------------------------------------------

 // マーカーはＡ，Ｂ，Ｃ・・で表現します。
 // Create a marker whose info window displays the letter corresponding
 // to the given index.
	  function createMarker(point, index) {
	  	 //目標地点だけののアイコンをブルーにします
	  	 if(index ==  view_count)
	  	 {
	  	 	var blueIcon = new GIcon(G_DEFAULT_ICON);
		  	blueIcon.image = "http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png";
			// Set up our GMarkerOptions object
			markerOptions = { icon:blueIcon };
			var marker = new GMarker(point, markerOptions)
	        
		  }
		 else
		  { 
		    var letter = String.fromCharCode("A".charCodeAt(0) + index);
          		var letteredIcon = new GIcon(baseIcon);
          		letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
          		markerOptions = { icon:letteredIcon };
			var marker = new GMarker(point, markerOptions);
		   }
		
// 最高10程度に地点を設定します。
// 地図のマーカーをクリックした時も、ページ中の地名をクリックしても詳細が出るようにします。

			var mark_ = new Array
			for( var i = 0; i < view_count; i++ )  //view_count=実表示件数
          		{
			if (index==i){
			var html =('<table width="200" height="60" bgcolor="#eeeeee"><tr><td style="padding:8px;font-size:10pt"><div><b>【施設名】： ' + shisetsu_name[i] + '</b></div><div>【住所】： ' +  shisetsu_address[i] + '</div></td></tr></table>');
			mark_[i] = document.getElementById("mark_"+i);
			if(mark_[i]){mark_[i].onclick = hyoji;};
			};
			}
			if (index == view_count)
			{
			var html =('<table height="70"><tr><td style="padding:4px;font-size:10pt;background-color:#ff0000;color:#ffffff"><b>「近隣施設」検索中</b><div style="padding:4px;font-size:10pt;"><a href="javascript:obSearch(1);" ><b>目的地点を変更する</b></a></div></td></tr></table>');
			mark_[view_count] = document.getElementById("mark_" + view_count);
			if(mark_[view_count]){mark_[view_count].onclick = hyoji;};
			}
			
		    
			
			
			
// ページ内からリンクされたときに詳細を表示します。 
			function hyoji() {marker.openInfoWindowHtml(html);};
			
// 地図の中でマーカーをクリックした時に詳細を表示します
			GEvent.addListener(marker, 'click', function() {
						marker.openInfoWindowHtml(html);});
		
			return marker;
			};



		// 各地点のマーカーポイントを緯度、経度で設定します。
			for( var i = 0; i < view_count; i++ )  //view_count=実表示件数
          		{ 
				var point = new GLatLng(shisetsu_y[i],shisetsu_x[i]);
				var marker = createMarker(point,i);
				map.addOverlay(marker);
				
			}
			
			
			 
//目標を示すためにblueIconを設定します。
			
				var point = new GLatLng(wy,wx);
				var marker = createMarker(point,view_count);
				map.addOverlay(marker);
				
		

//------------------------------地図　createMarker終了---------------------------------
//検索結果が0以外の場合の処理を終了します
	}
	
//----cgiから受信したデータ加工を終了します
	
}
}

    
    

