﻿//////////////////////////////////////////////////////////////////////
// 出張ジョーズ・スクリプト（パネル１：地図）
//////////////////////////////////////////////////////////////////////

//--------------------------------------------------------------------
// パネル１の表示
//--------------------------------------------------------------------
  function jaws1_PanelDisp(){
    var txt;
    txt = "<table cellspacing=0 cellpadding=8 width=100%>"
        + "<tr><td>"
        + "<table bgcolor=#888888 cellspacing=1 cellpadding=1>"
        + "<tr>"
        + "<td bgcolor=#FFFFFF>"
        + "<div id='map' style='width: 456px; height: 380px;'></div>"
        + "</td>"
        + "<td bgcolor=#E0E0AA width=110 align=center valign=bottom>"

        + "<table bgcolor=#888888 width=90 cellspacing=1 cellpadding=1>"
        + "<tr><td bgcolor=#EEEEEE align=center>地図表示</td></tr>"
        + "<tr>"
        + "<td bgcolor=#FFFFFF align=center>"
        + "<a href='javascript:void(0)' onclick='RG_Zoom(1);'>出発地ズーム</a><br>"
        + "<a href='javascript:void(0)' onclick='RG_Zoom2();'>２地点表示</a><br>"
        + "<a href='javascript:void(0)' onclick='RG_Zoom(2);'>目的地ズーム</a>"
        + "</td>"
        + "</tr>"
        + "</table>"

        + "<br>"

        + "<table bgcolor=#888888 width=90 cellspacing=1 cellpadding=1>"
        + "<tr><td bgcolor=#EEEEEE align=center>目的地周辺</td></tr>"
        + "<tr>"
        + "<td bgcolor=#FFFFFF align=left>"
        + "　<input type=checkbox name='HotelMark' id='HotelMark' onclick='Hotel_Mark(this.checked);'>ホテル<br>"
        + "　<input type=checkbox name='RestaurantMark' id='RestaurantMark' onclick='Restaurant_Mark(this.checked);'>レストラン"
        + "</td>"
        + "</tr>"
        + "</table>"

        + "<br>"

        + "<table bgcolor=#888888 width=90 cellspacing=1 cellpadding=0>"
        + "<tr><td bgcolor=#EEEEEE width=10 height=57 rowspan=3 valign=bottom id=Zm></td>"
        + "<td bgcolor=#FFFFFF width=39 height=18 align=center><a href='javascript:void(0);' onclick='Zoom(1);'>[＋]</a></td>"
        + "<td bgcolor=#FFFFFF width=39 height=18 align=center><a href='javascript:void(0);' onclick='Zoom(18);'>MAX</a></td>"
        + "</tr>"
        + "<tr><td bgcolor=#EEEEEE height=18 align=center colspan=2>ズーム</td></tr>"
        + "<tr>"
        + "<td bgcolor=#FFFFFF height=18 align=center><a href='javascript:void(0);' onclick='Zoom(-1);'>[－]</a></td>"
        + "<td bgcolor=#FFFFFF height=18 align=center><a href='javascript:void(0);' onclick='Zoom(-18);'>MIN</a></td>"
        + "</tr>"
        + "</table>"

        + "<br>"

        + "<table bgcolor=#888888 width=90 cellspacing=1 cellpadding=1>"
        + "<tr><td bgcolor=#EEEEEE align=center>直線距離</td></tr>"
        + "<tr><td bgcolor=#FFFFFF align=center><span id=Dst>　</span></td></tr>"
        + "</table>"
        + "<br>"
        + "</td>"
        + "</tr>"
        + "</table>"
        + "</td></tr>"
        + "</table>";
    $("Panel1").innerHTML = txt;
  }

// マーカーの表示
  function g_mark(num){
    g_map.removeOverlay(g_marker[num]);
    var txt;
    if(num==1) txt=$('Form1').text1.value;
    if(num==2) txt=$('Form1').text2.value;
    var cap = new Array("","出発地","目的地");
    var html = "【" + cap[num] + "】"
             + "<br>名称：<b>" + txt + "</b>"
             + "<br>住所：" + Paddress[num]
             + "<br>緯度：" + Py[num] + "<br>経度：" + Px[num];
    g_map.removeOverlay(g_marker[num]);
    g_marker[num] = new GMarker(new GLatLng(Py[num],Px[num]));
    GEvent.addListener(g_marker[num], "click", function() {
        g_marker[num].openInfoWindowHtml(html);
     });
    g_map.addOverlay(g_marker[num]);
  }

// ２地点間の直線距離
  function RG_Distance(){
    if( (Pf[1]=="1") && (Pf[2]=="1") ){
      var point1 = g_marker[1].getPoint();
      var point2 = g_marker[2].getPoint();
      dst = point2.distanceFrom(point1);
      var DistStr = "" + Math.floor(dst/1000);
      $('Dst').innerHTML = "<font color=#0000FF>" + Devide3(DistStr) + "</font> km";
    }
  }

// １地点ズーム
  function RG_Zoom(num){
    if( Pf[num]=="1" ){
      C = new GLatLng( Py[num], Px[num] );
      var zm = 15;
      g_map.setCenter(C, zm);
      SetZoom(zm);
    }else{
      if(num==1){
        alert("出発地が指定されていません");
      }
      if(num==2){
        alert("目的地が指定されていません");
      }
    }
  }

// ２地点ズーム
  function RG_Zoom2(){
    if( (Pf[1]=="1") && (Pf[2]=="1") ){
      RG_ZoomUp();
    }else{
      if( (Pf[1]=="0") && (Pf[2]=="0") ){
        alert("出発地と目的地が指定されていません");
      }else{
        if( Pf[1]=="0" ){
          alert("出発地が指定されていません");
        }else{
          alert("目的地が指定されていません");
        }
      }
    }
  }

// ２地点の同時表示
  function RG_ZoomUp(){
    if( (Pf[1]=="1") && (Pf[2]=="1") ){
      var P1 = new GLatLng( Py[1], Px[1] );      // 出発地
      var P2 = new GLatLng( Py[2], Px[2] );      // 目的地
      Py[0] = (eval(Py[1]) + eval(Py[2])) * 0.5;
      Px[0] = (eval(Px[1]) + eval(Px[2])) * 0.5;
      var point1 = g_marker[1].getPoint();
      var point2 = g_marker[2].getPoint();
      dst = point1.distanceFrom(point2);
      var zm = 4;
      if(dst<1000000)  zm =  5;
      if(dst<300000)  zm =  6;
      if(dst<200000)  zm =  7
      if(dst<80000)   zm =  8;
      if(dst<50000)   zm =  9;
      if(dst<20000)   zm = 10;
      if(dst<10000)   zm = 11;
      if(dst<6000)    zm = 12;
      if(dst<3000)    zm = 13;
      if(dst<1000)    zm = 14;
      if(zm>4){
        C = new GLatLng( Py[0], Px[0] );         // 中間点
      }else{
        C = new GLatLng( 38, 138 );
      }
      g_map.setCenter(C, zm);
      SetZoom(zm);
    }
  }

// ズーム値のセット
  function SetZoom(val){
    ZoomLevel = val;
    $("Zm").innerHTML = "<img src='image/bar.gif' width='10' height='" + (val*3) + "'>";
  }

// ズーム値の調節
  function Zoom(val){
    ZoomLevel += val;
    if(ZoomLevel>19) ZoomLevel = 19;
    if(ZoomLevel<1) ZoomLevel = 1;
    SetZoom(ZoomLevel);
    g_map.setZoom(ZoomLevel);
  }

// ホテル位置のマーカー表示／消去
  function Hotel_Mark(flg){
    if(flg==true){
      var HC = HotelCount;
      if(HC>0){
        // ホテルマーカーの表示
        if(HC>40) HC=40;
        for(var i=0;i<HC;i++){
          var num = i + 1;
          var point = new GLatLng( eval(HotelY[num]), eval(HotelX[num]) );
          g_map.addOverlay(createHotelMarker(point, num));
        }
      }else{
        alert("ホテルが検索されていません");
        $('HotelMark').checked = false;
      }
    }else{
      // ホテルマーカーの削除
      for(var i=0;i<HotelCount;i++){
        g_map.removeOverlay(HotelMarker[i+1]);
      }
    }
  }

// ホテルマーカーの作成
  function createHotelMarker(point, num){
    var numtxt;
    if(num<10){
      numtxt = "0" + num;
    }else{
      numtxt = "" + num;
    }
    var H_icon = new GIcon(BaseIcon);
    var H_image = "image/marker_yellow" + numtxt + ".png";
    H_icon.image = H_image;
    H_icon.transparent = H_image;
    var marker = new GMarker(point, H_icon);
    GEvent.addListener(marker, "click", function() {
      var html = "【" + num + "】"
               + "<b>" + HotelName[num] + "</b><br>"
               + "<table width=360><tr>"
               + "<td valign=top><img src='" + HotelPicture[num] + "' width=100></td>"
               + "<td valign=top>" + HotelDescription[num] + "</td>"
               + "</tr></table>";
      marker.openInfoWindowHtml(html);
      });
    HotelMarker[num] = marker;
    return marker;
  }

// レストラン位置のマーカー表示
  function Restaurant_Mark(flg){
    if(flg==true){
      var RC = RestaurantCount;
      if(RC>0){
        // レストランマーカーの表示
        if(RC>40) RC=40;
        for(var i=0;i<RC;i++){
          var num = i + 1;
          var point = new GLatLng( eval(RestaurantY[num]), eval(RestaurantX[num]) );
          g_map.addOverlay(createRestaurantMarker(point, num));
        }
      }else{
        alert("レストランが検索されていません");
        RestaurantMark.checked = false;
      }
    }else{
      // レストランマーカーの削除
      for(var i=0;i<RestaurantCount;i++){
        g_map.removeOverlay(RestaurantMarker[i+1]);
      }
    }
  }

// レストランマーカーの作成
  function createRestaurantMarker(point, num){
    var numtxt;
    if(num<10){
      numtxt = "0" + num;
    }else{
      numtxt = "" + num;
    }
    var R_icon = new GIcon(BaseIcon);
    var R_image = "image/marker_pink" + numtxt + ".png";
    R_icon.image = R_image;
    R_icon.transparent = R_image;
    var marker = new GMarker(point, R_icon);
    GEvent.addListener(marker, "click", function() {
      var html = "【" + num + "】"
               + "<b>" + RestaurantName[num] + "</b><br>"
               + "<table width=360><tr>"
               + "<td valign=top><img src='" + RestaurantPicture[num] + "' width=100></td>"
               + "<td valign=top>" + RestaurantDescription[num] + "</td>"
               + "</tr></table>";
      marker.openInfoWindowHtml(html);
      });
    RestaurantMarker[num] = marker;
    return marker;
  }
