﻿var map;
var gls;
var marker_list=[];
var txt_list=[];
var marker_index=0;

// qはフォームのテキストエリアの値
function localSearch() {
    var q=document.getElementById('q').value;
    if(q=="" || q=="undefined"){
        alert("検索キーワードが入力されていません");
    }else{
        gls.execute(q);
        return false;
    }
}

// 検索完了時に呼ばれるコールバック関数
function onLocalSearch() {
    if (gls.results.length == 0) return;

    // 検索結果の1番目を取得
    var first = gls.results[0];
    // その結果の緯度・経度を地図の中心にセット
    var lat = parseFloat(first.lat);
    var lng = parseFloat(first.lng);
    map.setCenter(new GLatLng(lat, lng));

    // マーカーを立てたり
    var marker = new GMarker(new GPoint(lng, lat));
    map.addOverlay(marker);
    marker.openInfoWindow(first.html.cloneNode(true));
}

function addMarker(filename) {  //マーカーを表示 
    var request = GXmlHttp.create(); 
    var datetime = new Date().getTime();
    request.open("GET", filename + '?' + datetime , true); 
    request.onreadystatechange = function() { 
        if (request.readyState == 4) { 
            var xmlDoc = request.responseXML; 
            var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 
            for (var i = 0; i < markers.length; i++) { 
                 var mpoint = new GLatLng( 
                     markers[i].getAttribute("lat"), 
                     markers[i].getAttribute("lng") 
                 ); 
                 var markertype = markers[i].getAttribute("markertype");
                 var htmltext = markers[i].getAttribute("html");
                 var marker = createMarker(mpoint, i, htmltext, markertype); 
                 map.addOverlay(marker); 


            } 
        } 
    } 
    request.send(null);
}

function createMarker(mpoint, index, text, type) { 

    var icon = new GIcon();
    icon.image = "http://www.sumainotakumi.jp/imgs/common/mapicon1.png";
    icon.shadow = "http://www.sumainotakumi.jp/imgs/common/mapicon_shadow1.png";
    icon.iconSize = new GSize(19, 22);
    icon.shadowSize = new GSize(19, 22);
    icon.iconAnchor = new GPoint(9, 20);
    icon.infoWindowAnchor = new GPoint(10, 22);
    if(type.length >0){icon.image = "http://www.sumainotakumi.jp/imgs/common/mapicon_"+type+".png";}
    var marker = new GMarker(mpoint,icon); 
    GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(text);});
    marker_list.push(marker);
    txt_list.push(text);
    return marker; 
} 
function init(deflat, deflag, defzoom, xmldata){ 
  map = new GMap2( document.getElementById("takumimap")); 
  map.setCenter( new GLatLng(deflat,deflag), defzoom);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());


  addMarker(xmldata);  //マーカーをマッピング

  // GlocalSearchオブジェクトを生成
  gls = new GlocalSearch();
  // 検索完了時のコールバック関数をセット
  gls.setSearchCompleteCallback(null, onLocalSearch);


} 


function mapmove(move_x,move_y,zoom_param) {
    var movepoint = new GLatLng(move_y,move_x);
    map.setCenter(movepoint, zoom_param);
}

function clickMarker(index){
    //吹き出しを表示する
    marker_list[index].openInfoWindowHtml(txt_list[index]);
}

var search_address_def='地名・住所名の検索ができます';
function localSearchBlurFocus() {
    var q=document.getElementById('q');
    if(q.value == ''){
        q.value = search_address_def;
    } else if(q.value == search_address_def){
        q.value = '';
    }
}

