//<![CDATA[
    var map = null;
    var geocoder = new GClientGeocoder();
	var spov = {yaw:0,pitch:-20,zoom:0};
var message="";
    /*最初に読みだされる*/
    function load(addressDATA,addressSHOW) {
if(!addressDATA){
addressDATA="東京都千代田区鍛冶町2-9-4";
addressSHOW="東京都千代田区鍛冶町2-9-4";
}
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GOverviewMapControl());
        map.addControl(new GMapTypeControl());

    　　var option = { pov:spov };
    　　streetObj = new GStreetviewPanorama(document.getElementById("map2"),option);
        showAddress(addressDATA,addressSHOW);
      }
      /*クリックされたときに呼び出される*/        
      GEvent.addListener(map, "click", function(overlay, point){
            if (point){
                /*geocoderに住所を読み込んでもらう*/
                geocoder.getLocations(map.getCenter(), function(addresses){
                    if (addresses.Status.code != 200) {
                        /*住所の取得は失敗したけど、緯度経度はあるよ。*/
                    var client = new GStreetviewClient();
                    client.getNearestPanorama(point, getPoint);
                    var plng=point.lng();
                    var plat=point.lat();

                    getResult(plng,plat);
                    showMarker('',point);
                    return;                
                    }
                    /*住所の取得成功！*/
                    var result = addresses.Placemark[0];
                    map.clearOverlays();

                    var client = new GStreetviewClient();
                    client.getNearestPanorama(point, getPoint);

var plng=point.lng();
var plat=point.lat();

getResult(plng,plat);

showMarker(result.address,point);

                });
            }
        });
    }

    /*住所からの検索*/
    function showAddress(address,showStr) {
      if (geocoder) {
          
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
                /*検索できませんでした*/
                return;
            } 
            /*検索できたので、画面をクリアしセットする。*/
			
var plng=point.lng();
var plat=point.lat();
$('center').innerHTML= "<a href=\"javascript:void(0)\" onClick=\"showAddress('" + address + "','" + showStr + "'); return false\">" + showStr + "</a>";
getResult(plng,plat);

            map.clearOverlays();
            map.setCenter(point, 15);
            showMarker(address,point,showStr);

            var client = new GStreetviewClient();
            client.getNearestPanorama(point, getPoint);

        });
      }
    }

    /*マーカー表示*/
    function showMarker(address,point,showStr)
    {
        var marker = new GMarker(point);
            map.addOverlay(marker);
        var message = "<div id='marker_html'>"
			+ "<dl>"
			+ "<dt>住所</dt>"
			+ "<dd>" + showStr + "</dd>"
//			+ "<dt>緯度</dt>"
//			+ "<dd>" +  point.lat() + "</dd>"
//			+ "<dt>経度</dt>"
//			+ "<dd>" +  point.lng() + "</dd>"
			+ "</dl>"
			+ "</div>";

		
var plng=point.lng();
var plat=point.lat();
getResult(plng,plat);

        marker.openInfoWindowHtml(message);
    }


function getPoint(data){
            if (data.code != 200){
            document.getElementById("map2").innerHTML="<img src='../../img/no_streetview.jpg'>";
            return;
            }

            var newpoint = data.location.latlng;
            document.getElementById("map2").innerHTML="";
            streetObj.setLocationAndPOV(newpoint);
            streetObj.panTo(spov,true);
            //  map2.panTo(newpoint);
            //  marker.setLatLng(newpoint);
}

function getResult(lng,lat)
{

	url="Reki.php";
	var data = "";
	data += "lon=" + lng;
	data += "&lat=" + lat;

	var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: data, 
            onComplete: onloaded
        });

} 

  
function onloaded(roj){
var check1= roj.responseText.evalJSON();
var stations = "";
var search_linkE = "";
var search_linkR = "";
var lines = new Array();
var line_cds = new Array();
var station_names = new Array();

if(check1.coord.error==0){

if(!check1.station.length){

var ekipoint=new GLatLng(check1.station.lat,check1.station.lon);

ekidata=check1.station.line_name + "&nbsp;" + check1.station.station_name + "<br>直線距離：" + check1.station.meter + "m";

stations+="<a href=\"javascript:void(0)\" onClick=\"addMarker2('" + ekidata + "'," + check1.station.lat + "," + check1.station.lon + "); return false\">" + check1.station.line_name;
stations+="&nbsp;"+check1.station.station_name+"駅</a>（"+ check1.station.meter + "m）<br>";

search_linkE="<a href='../office.php?line_cd=" + check1.station.line_cd + "'>" + check1.station.line_name;
search_linkR="<a href=\"../office.php?EKIkana[]="
search_linkR+= check1.station.station_name + "\">" + check1.station.station_name + "</a>";

//最寄り駅マーカー作成
  addMarker(ekidata,ekipoint);

}else{
for(i=0;i<check1.station.length;i++){

  var ekipoint=new GLatLng(check1.station[i].lat,check1.station[i].lon);

//ekidata="<a href=\"ppp.php?line_cd=" + check1.station[i].line_cd + "\">" + check1.station[i].line_name + "</a>";
//ekidata+="&nbsp;<a href=\"ppp.php?station_g_cd=" + check1.station[i].station_g_cd + "\">" + check1.station[i].station_name + "</a>【" + check1.station[i].meter + "m】<br>";

ekidata=check1.station[i].line_name + "&nbsp;" + check1.station[i].station_name + "<br>直線距離：" + check1.station[i].meter + "m";

stations+="<a href=\"javascript:void(0)\" onClick=\"addMarker2('" + ekidata + "'," + check1.station[i].lat + "," + check1.station[i].lon + "); return false\">" + check1.station[i].line_name;
stations+="&nbsp;"+check1.station[i].station_name+"駅</a>（"+ check1.station[i].meter + "m）<br>";

lines[i]="<a href='../office.php?line_cd=" + check1.station[i].line_cd + "'>" + check1.station[i].line_name + "</a>";
station_names[i]="<a href=\"../office.php?EKIkana[]=" + check1.station[i].station_name + "\">" + check1.station[i].station_name + "</a>";

//最寄り駅マーカー作成

  addMarker(ekidata,ekipoint);
}

uni_line=array_unique(lines);
uni_station=array_unique(station_names);


if(uni_line.length){
for(u=0;u<uni_line.length;u++){
search_linkR += uni_line[u] + "<br>";
}
}else{
search_linkR +=uni_line;
}

if(uni_station.length){
for(u=0;u<uni_station.length;u++){
search_linkE += uni_station[u] + "<br>";
}
}else{
search_linkE +=uni_station;
}

}
$('map3').innerHTML = stations;
$('linksR').innerHTML = search_linkR;
$('linksE').innerHTML = search_linkE;
}else{

$('map3').innerHTML = check1.coord.error + "半径５００ｍ以内に最寄り駅が見つかりませんでした。";
}
}


function addMarker(ekidata,ekipoint){
      if (ekipoint) {
        //マーカーを作成
        var marker = new GMarker(ekipoint);
        GEvent.addListener(marker, "click", function() {
          var txt="<div align='left'>" + ekidata + "<br/></div>";
          marker.openInfoWindowHtml(txt);
        });
        //マーカーを地図上に配置
        map.addOverlay(marker);
      }


} 

function addMarker2(ekidata,ekipoint1,ekipoint2){
    ekipoint = new GLatLng(ekipoint1,ekipoint2);
      if (ekipoint) {
          var txt="<div align='left'>" + ekidata + "<br/></div>";
          map.openInfoWindowHtml(ekipoint,txt);
                    var client = new GStreetviewClient();
                    client.getNearestPanorama(ekipoint, getPoint);
      }


}

function array_unique(Arr){
    var storeArr = new Array;
    var ret = new Array;
    i=0;
    f=0;
    while(Arr[i] != null){
        if(Arr[i] != ""){
            if(storeArr[String(Arr[i])]){
            }else{
                storeArr[String(Arr[i])] = 1;
                ret[f]=Arr[i];
                f++;
            }
        }
        i++;
    }
    return ret;
}

