/**********************************************************************
 *
 * $Id: main.js,v 1.37 2008/10/28 09:48:23 sanoju Exp $
 *
 * JavaScript for Fujinomiya Fall Festival
 * 
 * Copyright (C) 2007  Junya Sano
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 **********************************************************************/

var Global = {
  map: null,              // GMapオブジェクト
  nl: null,               // Now Loadingオブジェクト
  timer: null,           // リロード間隔オブジェクト
  selectedMenu: null,    // 選択されたメニュー
  gmMarkers: [],         // GMarkerオブジェクト配列
  html_bk: []         // GMarkerオブジェクト配列 sugi
};

////
// Now loading オブジェクト
//
// @author     Toshirou Takahashi http://jsgt.org/mt/archives/01/000539.html
// @version    0.03
// @license    著作権表示義務無し。商用利用、改造、自由。連絡不要。
// @sample     oj = new jsgt_jsgt_nowLoading()           //DIVを自動生成する場合
// @sample     oj = new jsgt_nowLoading('nloading') //DIV名で指定する場合
// @param  id  jsgt_nowLoading用DIVのID名(デフォルト_jsgt_nowLoading)
// @return     now loadingオブジェクトのインスタンス
// @UPDATE     2005.10.25 id="_jsgt_nowLoading"+nのnを追加
// 
//
function jsgt_nowLoading(id){

  if(!id){
    id = "_jsgt_nowLoading"
    id += (isNaN(jsgt_nowLoading.count))?jsgt_nowLoading.count=0:++jsgt_nowLoading.count;
    var crenlDIV = document.createElement("DIV") ;
    this.nlDIV = document.body.appendChild(crenlDIV)       ;
    this.nlDIV.setAttribute("id",id) ;
  } else {
    this.nlDIV = getRawObject(id)
  }

  this.nlDIV.style.left = (getObjectLeft('map') + (getObjectWidth('map') - 
                           getObjectWidth(id)) / 2) + "px";
  this.nlDIV.style.top = (getObjectTop('map') + (getObjectHeight('map') - 
                          getObjectHeight(id)) / 2) + "px";

  //表示 　リクエスト発行時に動作させてください
  //@param html 表示するメッセージ(デフォルト now loading... )
  this.showNL = function (html){
     this.nlDIV.style.zIndex = 500;
     var html=(html)?html:" now loading... ";
     this.nlDIV.innerHTML = "  "+html+"   "
  } 

  //消去 　コールバック処理時に動作させてください
  this.hideNL = function (){
     this.nlDIV.innerHTML = ""
     this.nlDIV.style.zIndex = -500;
  } 

}

function resize() {
  var mapWidth = getInsideWindowWidth() - 
                 getObjectWidth('rightPanel') - 20;
  var mapdiv = getRawObject('map');
  mapdiv.style.width = mapWidth + "px";

//  var ppdiv = getRawObject('photoPanel');
//  ppdiv.style.width = (getInsideWindowWidth() - 20) + "px";
}

function menuPosition() {
  loadPosition();
}

function menuGps() {
//  hidePhotoPanel(); 
  loadGps();
}

function menuSeriai() {
//  hidePhotoPanel(); 
  loadSeriai();
}

//============================
// 情報をHTMLで記述
//============================
//sugiyama 20101102 吹き出しに・はっぴ・詳細を追加
//function createPositionHtml(name, photo1) {
function createPositionHtml(name, photo1, photo2, feature) {

  var img = '<img src="images/' + photo1 + '" />';

  if (photo2 != null && photo2 !="" ) {
	  var img2 = '<img src="images/' + photo2 + '" width=220px />';
  } else {
	  var img2 = "";  
  }

  	if (feature != null && feature !="" ) {
	  return '<div class="info" style="overflow: auto; height: 370px; width: 400px; margin-top: 2px;">' + 
			   "<font size=3><b>" + name + "</b></font>" +
			   "<p>" + img + img2 + "</p>" +
			   "<p>" + feature  + "</p>" +
			 "</div>";
	} else {
		 return '<div class="info" style="overflow: auto; height: 280px; width: 400px; margin-top: 3px;">' + 
			   "<font size=3><b>" + name + "</b></font>" +
			   "<p>" + img + img2 + "</p>" +
			   "<p>" + feature  + "</p>" +
			 "</div>";	
	}

/*
  return '<div class="info" style="overflow: auto; height: 350px; width: 200px; margin-top: 10px;">' + 
           "<p>" + name + "</p>" +
           "<p>" + img + "</p>" +
         "</div>";
*/
}

//============================
// 情報をHTMLで記述 sugi
//============================
function createPositionHtml_nophoto(name) {
  return '<div  style="height: 10px; width: 100px; margin-top: 5px;">' + 
           "<font size=2><b>" + name + "</b></font>" +
         "</div>";
}


function createGpsHtml(name, received, dashi_code,
                       gpsmail_id, subject, tstamp, num_files, extensions) {
//  var img = '<img src="images/' + dashi_code + '_dashi_happi.jpg" ' +
//            'width="188" height="255" />';
  var files = new Array();
  for (var i = 0; i < num_files; i++) {
    var mediatag = "";
    var qs = '?id=' + gpsmail_id + '&ext=' + extensions[i] + '&num=' + (i + 1);
    if (extensions[i] == '.jpg') {
		if (i ==0) {
	    	var picid = gpsmail_id + extensions[i];
    	} else {
	    	var picid = gpsmail_id + '-' + (i + 1) + extensions[i];    	
    	}
      mediatag = '<img src="file.php' + qs + '" width="180" height ="180" />' +
                 '<a href="img.php' + qs + '" target="_blank">' +
                 '<div style="font-size: 10px;">別ウィンドウで写真を見る</div>' +
                 '</a>';
    }
    if (extensions[i] == '.3gp') {
/*
      mediatag =
        '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ' +
        'width="180" height="180" scale="tofit" ' +
        'codebase="http://www.apple.com/qtactivex/qtplugin.cab">' +
        '<param name="SRC" value="file.php' + qs + '">' +
        '<param name="AUTOPLAY" value="true">' +
        '<param name="CONTROLLER" value="true">' +
        '<embed src="file.php' + qs + '" width="180" height="180" scale="tofit" ' +
        'autoplay="true" controller="true" ' +
        'pluginspage="http://www.apple.com/quicktime/download/">' +
        '</embed>' +
        '</object>' +
        '<a href="quicktime.php' + qs + '" target="_blank">' +
        '<div style="font-size: 10px;">別ウィンドウで動画を再生する</div>' +
        '</a>';
*/
      mediatag =
        '<a href="quicktime.php' + qs + '" target="_blank">' +
        '<div style="font-size: 10px;">別ウィンドウで動画を再生する</div>' +
        '</a>';
    }
//    files.push(
//      '<a href="' + url + '" target="_blank">' +
//      mediatag +
//      '</a>');
//sugiyama    mediatag = mediatag + "<p>ファイル受信: " + tstamp + "</p>";
    files.push(mediatag);
  }

//  return '<div style="overflow: auto; height: 350px; width: 200px; margin-top: 10px; ">' +
         '<p>' + name + '</p>' +
         '<p>件名: ' + subject + '</p>' +
         '<p>位置受信: ' + received + '</p>' +
         files.join("<br />") +
         '</div>';

  return '<div style="overflow: auto; height: 290px; width: 200px; margin-top: 5px; ">' +
         '<p><b>【' + name + '】</b></p>' +
         '<p>日時: ' + received + '</p>' +
         files.join("<br />") +
         '</div>';
}

function createRouteHtml(arrival, departure, unkou_kubun) {
//20101102 sugiyama 縦長なので少し短くしてみる
//  return '<div class="info" style="overflow: auto; height: 350px; width: 200px; margin-top: 10px;">' + 
  return '<div class="info" style="overflow: auto; height: 100px; width: 200px; margin-top: 10px;">' + 
         "<table border=\"0\">" +
         "<tr>" +
         "<td></td>" +
         "<td>" + unkou_kubun + "</td>" +
         "</tr>" +
         "<tr>" +
         "<td>到着：</td>" +
         "<td>" + arrival + "</td>" +
         "</tr>" +
         "<tr>" +
         "<td>出発：</td>" +
         "<td>" + departure + "</td>" +
         "</tr>" +
         "</table>" +
         "</div>";
}

function createSeriaiHtml(name, arrival, comment) {
//  return '<div class="info" style="overflow: auto; height: 350px; width: 200px; margin-top: 10px;">' + 
  return '<div class="info" style="overflow: auto; height: 120px; width: 350px; margin-top: 3px;">' + 
           "<font size=3><p>" + name + "</p>" +
           "<p>" + arrival + "</p>" +
           "<p>" + comment + "</p></font>" +
         "</div>";
}

// マーカーを作成
function createMarker(id, point, html, type) {
  // GMarkerオブジェクトを作成
  var marker = new GMarker(point);

  var icon = marker.getIcon();

  icon.image = "images/" + type + id + ".png"; // hack icon image

  // イベントリスナーを設定
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });

  return marker;
}

//------------------------------------sugisugi
//*******************************
//■地図を中央に移動し、吹き出しを表示
//*******************************
function show_window(i){

  	var gb;
  	var marker = Global.gmMarkers[i];
  	gb = new GLatLngBounds( marker.getPoint(), marker.getPoint() );
	// 本部
	var point = new GLatLng(35.22509569046824,138.61027747392654);
	gb.extend( point );

	var zoomlbl;
	
	zoomlbl = Global.map.getBoundsZoomLevel( gb) ;
	if (zoomlbl > 19 ) {
		zoomlbl = 19;
	}

 	var point = marker.getPoint(); 
//	 	Global.map.openInfoWindowHtml(marker.getPoint(),  Global.html_bk[i]  );
	 Global.map.setCenter( gb.getCenter(), zoomlbl );
}
//------------------------------------sugisugi

//===========================
//一覧クリック時にイベント発生
//===========================
function createMarkerClickTriggerJS(i) {

	//GEvent.trigger　=イベントを発生させるトリガー
	//マーカーにクリックイベントを発生させる=吹き出しを表示するイベントを発生？？？
//  return "javascript: GEvent.trigger(Global.gmMarkers[" + i + "], " +
//         " \'click\');";

  return "javascript: show_window(" + i + ");";
         
}

//=======================
//一覧<td>部分を作成
//=======================
function createPositionLegendTD(name, dashi_code, direction, marker, i) {
  return '<td>' +
         '<a href="#position" onclick="' +
         createMarkerClickTriggerJS(i) +
         '" title="位置を表示">' + 
         '<div style="{background: transparent ' +
         'url(' + marker.getIcon().image + ') ' +
         'no-repeat scroll 0%;}" ' +
         'class="markerButton" ></div>' + 
         '</a>' +
         '</td>' +
         '<td>' +
         '<a href="#route" onclick="' +
         'javascript: loadRoute(\'' + dashi_code + '\');' +
         '" title="ルート表示">' + 
         '<img class="noBorder" src="images/arrow-' + direction + '.png" />' +
         '</a>' +
         '<span class="whiteLabel">' + name + '</span>' +
         '</td>';
}

function createGpsLegendTD(name, received, marker, i) {
  return '<td>' +
         '<a href="#position" onclick="' +
         createMarkerClickTriggerJS(i) +
         '" title="位置を表示">' + 
         '<div style="{background: transparent ' +
         'url(' + marker.getIcon().image + ') ' +
         'no-repeat scroll 0%; width="15" height="27" }" ' +
         'class="markerButton" ></div>' + 
         '</a>' +
         '</td>' +
         '<td>' +
         '<span class="whiteLabel">' + name + '</span>' +
         '</td>' +
         '<td>' +
         '<span class="whiteLabel">' + received + '</span>' +
         '</td>';
}

function createRouteLegendTD(arrival, departure, unkou_kubun, 
                             direction, marker, i) {
  return '<td>' +
         '<a href="#position" onclick="' +
         createMarkerClickTriggerJS(i) +
         '" title="位置を表示">' + 
         '<div style="{background: transparent ' +
         'url(' + marker.getIcon().image + ') ' +
         'no-repeat scroll 0%;}" ' +
         'class="markerButton" ></div>' + 
         '</a>' +
         '</td>' +
         '<td>' +
         '<img class="noBorder" src="images/arrow-' + direction + '.png" />' +
         '<span class="whiteLabel">' + unkou_kubun + '</span>' +
         '</td>' +
         '<td align="right">' +
         '<span class="whiteLabel">' + arrival + '</span>' +
         '</td>' +
         '<td align="right">' +
         '<span class="whiteLabel">' + departure + '</span>' +
         '</td>';
}

function createSeriaiLegendTD(name, arrival, comment, marker, i) { 
  return '<td>' +
         '<a href="#position" onclick="' +
         createMarkerClickTriggerJS(i) +
         '" title="位置を表示">' + 
         '<div style="{background: transparent ' +
         'url(' + marker.getIcon().image + ') ' +
         'no-repeat scroll 0%;}" ' +
         'class="markerButton" ></div>' + 
         '</a>' +
         '</td>' +
         '<td>' +
         '<span class="whiteLabel">' + name + '</span>' +
         '</td>' +
         '<td align="right">' +
         '<span class="whiteLabel">' + arrival + '</span>' +
         '</td>' +
         '<td>' +
         '<span class="whiteLabel">' + comment + '</span>' +
         '</td>';
}

//=====================
//画像部分<td>作成
//=====================
function createPhotoTD(name, photo, marker, i) {
  return '<td align="center">' +
         '<p>' +
         '<a href="#position" onclick="' +
         createMarkerClickTriggerJS(i) +
         '" title="位置を表示">' + 
         '<div style="{background: transparent ' +
         'url(' + marker.getIcon().image + ') ' +
         'no-repeat scroll 0%;}" ' +
         'class="markerButton" ></div>' + 
         '</a>' +
         '<span class="whiteLabel">' + name + '</span>' +
         '</p>' +
         '<a href="#position" onclick="' + createMarkerClickTriggerJS(i) +
         '; " title="位置を表示">' + 
         '<img src="images/' + photo + '" width="76" height="103" />' +
         '</a>' +
         '</td>';
}

//-----------------------------
//html（多分吹き出し）を作成
//data --xmlの戻り値
//-----------------------------
function parsePosition(data, status) {
  if (status == 200) {
//alert(data);
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");

    var legendTDs = new Array();
    var photoTDs = new Array();
    for (var i = 0; i < markers.length; i++) {
      var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                              parseFloat(markers[i].getAttribute("lng")));

	//====================
    // htmlを作成（吹き出し）
	//====================
//20101102 sugiyama 吹き出しに、はっぴ・詳細を追加 ↓
//      var html = createPositionHtml(markers[i].getAttribute("name"),
//                                    markers[i].getAttribute("photo1"));
      var html = createPositionHtml(markers[i].getAttribute("name"),
                                    markers[i].getAttribute("photo1"),
                                    markers[i].getAttribute("photo2"),
                                    markers[i].getAttribute("feature"));
//20101102 sugiyama 吹き出しに、はっぴ・詳細を追加　↑

      var html_nophoto = createPositionHtml_nophoto(markers[i].getAttribute("name"));

      Global.html_bk[i] = html_nophoto;

      var marker = createMarker(i + 1, point, html, 'd');
      Global.map.addOverlay(marker);
      Global.gmMarkers.push(marker);

	  legendTDs.push(createPositionLegendTD(markers[i].getAttribute("name"),
                                    markers[i].getAttribute("dashi_code"),
                                    markers[i].getAttribute("direction"),
                                    marker, i));

      photoTDs.push(createPhotoTD(markers[i].getAttribute("name"),
                                 markers[i].getAttribute("photo1"),
                                 marker,
                                 i));
    }

    //=====================sugi add
    // GMarkerオブジェクトを作成
    var point = new GLatLng(35.22509569046824,138.61027747392654);
    var marker = new GMarker(point);
    var icon = marker.getIcon();
    icon.image = "images/honbu.png";
    Global.map.addOverlay(marker);
    //=====================sugi add
    // レジェンド作成
    var rows = "";
    // 1行に2列
    var i;

    //=======================
    //右側の一覧を作成
    //=======================
    for (i = 0; i < Math.ceil(legendTDs.length / 2) - 1; i++) {
      rows += "<tr>" +
              legendTDs[i] +
              legendTDs[i + Math.ceil(legendTDs.length / 2)] +
              "</tr>";
    }

    // 最後の行は場合分け
    rows += "<tr>" + legendTDs[i];
    if (legendTDs.length % 2 == 0) {
      rows += legendTDs[i + legendTDs.length / 2];
    }
    else {
      rows += "<td></td><td></td>";
    }
    rows += "</tr>";

    var legendDiv = getRawObject('legendPanel');
    legendDiv.innerHTML = '<p class="whiteTitle">予定位置</p>' +
                          '<table border="0">' + rows + '</table>';
  }

  // Now Loadingを消去
  Global.nl.hideNL();
}

function parseGps(data, status) {
  if (status == 200) {
//alert(data);
//alert(status);
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");

    var legendTDs = new Array();
    for (var i = 0; i < markers.length; i++) {
      var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                              parseFloat(markers[i].getAttribute("lng")));

      var extensions;
      if (markers[i].getAttribute("extensions")) {
        extensions = markers[i].getAttribute("extensions").split(',')
      }

      var subject = '無題';
      if (markers[i].getAttribute("subject")) {
        subject = markers[i].getAttribute("subject");
      }

      // htmlを作成
      var html = createGpsHtml(markers[i].getAttribute("name"),
                               markers[i].getAttribute("received"),
                               markers[i].getAttribute("dashi_code"),
                               parseInt(markers[i].getAttribute("gpsmail_id")),
                               subject,
                               markers[i].getAttribute("tstamp"),
                               parseInt(markers[i].getAttribute("num_files")),
                               extensions
                              );

      var marker = createMarker(i + 1, point, html, 'd');
      Global.map.addOverlay(marker);
      Global.gmMarkers.push(marker);

      legendTDs.push(createGpsLegendTD(markers[i].getAttribute("name"),
                                    markers[i].getAttribute("received"),
                                    marker, i));
    }

    //=====================sugi add
    // GMarkerオブジェクトを作成
    var point = new GLatLng(35.22509569046824,138.61027747392654);
    var marker = new GMarker(point);
    var icon = marker.getIcon();
    icon.image = "images/honbu.png";
    Global.map.addOverlay(marker);
    //=====================sugi add

    // レジェンド作成
    var rows = '<tr>' +
               '<td></td>' + // marker
               '<td align="center">' + 
               '<span class="whiteLabel">区名</span>' +
               '</td>' +
               '<td align="center">' +
               '<span class="whiteLabel">受信日時</span>' +
               '</td>' +
               '</tr>';

    var i;
    for (i = 0; i < legendTDs.length; i++) {
      rows += "<tr>" +
              legendTDs[i] +
              "</tr>";
    }

    var legendDiv = getRawObject('legendPanel');
    legendDiv.innerHTML = '<p class="whiteTitle">GPS携帯</p>' +
//                          '<table border="0">' + rows + '</table>';
                          '<table border="0">' + rows + '</table>' +
                          '<p style="text-align: center">' +
                          '<a class="whiteLabel" href="file-list.php" ' +
                          ' target="_blank">' +
                          '写真・動画一覧を開く' +
                          '</a></p>';
  }

  // Now Loadingを消去
  Global.nl.hideNL();
}

function parseRoute(data, status) {
  if (status == 200) {
//alert(data);
//alert(status);
    var xml = GXml.parse(data);
    var polylines = xml.documentElement.getElementsByTagName("polyline");

    var kumei = "";
    for (var i = 0; i < polylines.length; i++) {
      var points = polylines[i].getElementsByTagName("point");

      var latlngs = new Array();
      for (var j = 0; j < points.length; j++) {
        latlngs.push(new GLatLng(parseFloat(points[j].getAttribute("lat")),
                                 parseFloat(points[j].getAttribute("lng"))));

        // redundant to assign for every loop, but sufficient
        kumei = points[j].getAttribute("kumei");
      }

      Global.map.addOverlay(new GPolyline(latlngs));
    }

    var schedules = xml.documentElement.getElementsByTagName("schedule");

    var legendTDs = new Array();
    for (var i = 0; i < schedules.length; i++) {
      var point = new GLatLng(parseFloat(schedules[i].getAttribute("lat")),
                              parseFloat(schedules[i].getAttribute("lng")));

      // htmlを作成
      var html = createRouteHtml(schedules[i].getAttribute("arrival"),
                                schedules[i].getAttribute("departure"),
                                schedules[i].getAttribute("unkou_kubun"));

      var marker = createMarker(i + 1, point, html, 'm');
      Global.map.addOverlay(marker);
      Global.gmMarkers.push(marker);

      legendTDs.push(
        createRouteLegendTD(schedules[i].getAttribute("arrival"),
                            schedules[i].getAttribute("departure"),
                            schedules[i].getAttribute("unkou_kubun"),
                            schedules[i].getAttribute("direction"),
                            marker, i));
    }

    //=====================sugi add
    // GMarkerオブジェクトを作成
    var point = new GLatLng(35.22509569046824,138.61027747392654);
    var marker = new GMarker(point);
    var icon = marker.getIcon();
    icon.image = "images/honbu.png";
    Global.map.addOverlay(marker);
    //=====================sugi add
 
    // レジェンド作成
    var rows = '<tr>' +
               '<td></td>' + // marker
               '<td></td>' + // direction
               '<td><span class="whiteLabel">到着</span></td>' +
               '<td><span class="whiteLabel">出発</span></td>' +
               '</tr>';

    var i;
    for (i = 0; i < legendTDs.length; i++) {
      rows += "<tr>" +
              legendTDs[i] +
              "</tr>";
    }

    var legendDiv = getRawObject('legendPanel');
    legendDiv.innerHTML = '<p class="whiteTitle">' + kumei + ' 運行予定</p>' +
                          '<table border="0">' + rows + '</table>';
  }

  // Now Loadingを消去
  Global.nl.hideNL();
}

function parseSeriai(data, status) {
  if (status == 200) {
//alert(data);
//alert(status);
    var xml = GXml.parse(data);
    var points = xml.documentElement.getElementsByTagName("point");

    var legendTDs = new Array();
    for (var i = 0; i < points.length; i++) {
      var point = new GLatLng(parseFloat(points[i].getAttribute("lat")),
                              parseFloat(points[i].getAttribute("lng")));

      // htmlを作成
      var html = createSeriaiHtml(points[i].getAttribute("name"),
                                  points[i].getAttribute("arrival"),
                                  points[i].getAttribute("comment"));

      var marker = createMarker(i + 1, point, html, 'm');
      Global.map.addOverlay(marker);
      Global.gmMarkers.push(marker);

      legendTDs.push(
        createSeriaiLegendTD(points[i].getAttribute("name"),
                             points[i].getAttribute("arrival"),
                             points[i].getAttribute("comment"),
                             marker, i));
    }

    // レジェンド作成
    var rows = '';

    var i;
    for (i = 0; i < legendTDs.length; i++) {
      rows += "<tr>" +
              legendTDs[i] +
              "</tr>";
    }

    //=====================sugi add
    // GMarkerオブジェクトを作成
    var point = new GLatLng(35.22509569046824,138.61027747392654);
    var marker = new GMarker(point);
    var icon = marker.getIcon();
    icon.image = "images/honbu.png";
    Global.map.addOverlay(marker);
    //=====================sugi add


    var legendDiv = getRawObject('legendPanel');
    legendDiv.innerHTML = '<p class="whiteTitle">競り合い予定</p>' +
//                          '<p class="whiteSubTitle">' +
//                          '（2時間以内のもの）</p>' +
                          '<table border="0">' + rows + '</table>';
  }

  // Now Loadingを消去
  Global.nl.hideNL();
}

//----------------------
//現在位置xmlを読み込む
//----------------------
function loadPosition() {
  Global.gmMarkers = new Array();
  Global.map.clearOverlays();

  // Now Loadingを表示
  if((typeof Global.nl)=='object'){
    Global.nl.showNL('データを読み込み中・・・'); 
  }

  Global.selectedMenu = "position";

  // xmlを読み込む
  //1番目の引数にダウンロードするファイルのURL、
  //2番目の引数に完了時に呼び出されるコールバック関数を指定します
  GDownloadUrl("xmldy.php", parsePosition);
}

function loadGps() {
  Global.gmMarkers = new Array();
  Global.map.clearOverlays();

  // Now Loadingを表示
  if((typeof Global.nl)=='object'){
    Global.nl.showNL('データを読み込み中・・・'); 
  }

  Global.selectedMenu = "gps";

  // xmlを読み込む
  GDownloadUrl("xmlgps.php", parseGps);
}

function loadRoute(dashi_code) {
  Global.gmMarkers = new Array();
  Global.map.clearOverlays();

  // Now Loadingを表示
  if((typeof Global.nl)=='object'){
    Global.nl.showNL('データを読み込み中・・・'); 
  }

  Global.selectedMenu = "route";

  // xmlを読み込む
  GDownloadUrl("xmlroute.php?code=" + dashi_code, parseRoute);
}

function loadSeriai() {
  Global.gmMarkers = new Array();
  Global.map.clearOverlays();

  // Now Loadingを表示
  if((typeof Global.nl)=='object'){
    Global.nl.showNL('データを読み込み中・・・'); 
  }

  Global.selectedMenu = "seriai";

  // xmlを読み込む
  GDownloadUrl("xmlseriai.php", parseSeriai);
}

function reloadData() {
  if (Global.selectedMenu == "position") {
    loadPosition();
  }
  else if (Global.selectedMenu == "gps") {
    loadGps();
  }
}

function setReloadTimer(interval) {
  if (Global.timer) {
    clearInterval(Global.timer);
  }

  Global.timer = setInterval('reloadData()', interval);
}

/*
function showPhotoPanel() {
  $('photoPanel').show();
}

function hidePhotoPanel() {
  $('photoPanel').hide();
}
*/

//+++++++++++++++++++++++++++20091101 sugi add start
   	//□マウスホールによるズーム処理
   	function mouseWheelZooming( event ){
   		//マウスホイールの上／下の取得と、スクロールのキャンセル
   		if( navigator.userAgent.match( "MSIE"   ) ){ var delta = event.wheelDelta;   event.returnValue = false; }	//IE
   		if( navigator.userAgent.match( "Gecko"  ) ){ var delta = event.detail * -1;  event.preventDefault();    }	//Gecko
   		if( navigator.userAgent.match( "Safari" ) ){ var delta = event.wheelDelta;   event.returnValue = false; }	//Safari
    
   		//ズーム処理
//		Global.map.setZoom(Global.map.getZoom() + ( delta < 0 ? 1 : -1 ));
		Global.map.enableScrollWheelZoom();
   	}
//+++++++++++++++++++++++++++20091101 sugi add end

// bodyのonloadイベントで実行される関数
function load() {
  // ブラウザーが対応しているかどうかチェック
  if (GBrowserIsCompatible()) {
    initDHTMLAPI();

    resize();
    window.onresize = resize;

    // id="map"のDIV要素内にGMap2オブジェクトを生成
    Global.map = new GMap2(getRawObject("map"));

    // setCenterメソッドを実行して、中心を富士宮に合わせる

    // GLatLngは緯度(Longitude)経度(Latitude)を表すクラス

    // 2つ目の引数はズームレベル(大=詳細、小=広域)
    Global.map.setCenter(new GLatLng(35.231239, 138.625124), 14);

    // ズームやパンをするコントロール
    Global.map.addControl(new GLargeMapControl());

//+++++++++++++++++++++++++++20091101 sugi add start
   	// KsGMap.jp Tips 『マウスホイールによるズーム機能』	http://www.ksgmap.jp/	Copyright(c) 2005 Ksc
   	//▼ここから関連コードです▼
    
   	//マウスホイールのイベントを追加
   	if( navigator.userAgent.match( "MSIE"   ) ){ document.getElementById( "map" ).attachEvent( "onmousewheel" , mouseWheelZooming ); }
   	if( navigator.userAgent.match( "Gecko"  ) ){ document.getElementById( "map" ).addEventListener( "DOMMouseScroll" , mouseWheelZooming , false ); }
   	if( navigator.userAgent.match( "Safari" ) ){ document.getElementById( "map" ).onmousewheel = mouseWheelZooming; }
//+++++++++++++++++++++++++++20091101 sugi add end

    //Now Loading インスタンス生成
    Global.nl = new jsgt_nowLoading("nowloading");

    // 現在位置xmlを読み込む
    loadPosition();

//    hidePhotoPanel();

    // リロード間隔=60秒
    setReloadTimer(60000);
  }
}

