    ///////////////////////////////////////////////////////////////////////////
    //google map
    ///////////////////////////////////////////////////////////////////////////
    var map;
    var icon;
    var ne_glat // 表示範囲北東頂点座標
    var sw_glat // 表示範囲南西頂点座標
    var curLatLng;

    var c_lat;
    var c_lng;
    var page = 0;

    var zoomlevel = 13;
    
    var pageMaxNum = 10; //１ページに表示する件数
    var maxRec     = 0; //検索件数
    var psdat;          //ページデータをパースしたものを格納する変数
    var curMarker;
    var html_str;
   
    //アイコンの設定
    icon = new GIcon();
    icon.image = "./mapicon3.png";
    icon.iconSize = new GSize(33, 33);
    icon.iconAnchor = new GLatLng(23, 16);
    icon.infoWindowAnchor = new GLatLng(16, 16);
    
    function googlemap_init(d_lat, d_lng, markcheck){
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl()); 
        map.addControl(new GMapTypeControl()); 
        map.addControl(new GOverviewMapControl()); 
        map.setCenter(new GLatLng(d_lat, d_lng), zoomlevel, G_NORMAL_MAP); 

        //マーカーをチェックしてウィンドウを開く処理
        if(markcheck == 1){
            curMarker = new GMarker(new GPoint(d_lng, d_lat), icon);
            map.panTo(new GLatLng(d_lat, d_lng));
            map.addOverlay(curMarker);
            GEvent.addListener(curMarker, "click", openWindow2);
        }
        //

        //イベント登録
        GEvent.addListener(map, 'zoomend', onChangeZoom);
        GEvent.addListener(map, "click", markclick);

    }
    
    //タブ区切りテキストを解析して配列変数に変換
    function parseTabText(tabText){
        var LF = String.fromCharCode(10);
        var TAB = String.fromCharCode(9);
        lineData = tabText.split(LF);
        var parseData = new Array();
        for(var i=0; i<(lineData.length); i++) parseData[i] = lineData[i].split(TAB);
        return parseData;
    }
    
    
//------------------------------------------------------------------------------
// マップのポイントを読み込む処理
//------------------------------------------------------------------------------
    function getMapPoint(category, area, title, page){
        if(title) document.getElementById("maptitle2").innerHTML = title;
        //map.setZoom(13);
        switch(area){
        case "1" : 
            c_lat = 38.32636470532111;
            c_lng = 140.88160693645477;
            break;
        case "2" : 
            c_lat = 38.26910239533024;
            c_lng = 140.87038189172745;
            break;
        case "3" : 
            c_lat = 38.26618997348077;
            c_lng = 140.90983986854553;
            break;
        case "4" : 
            c_lat = 38.24426830495799;
            c_lng = 140.90076059103012;
            break;
        case "5" : 
            c_lat = 38.224409250527294;
            c_lng = 140.8772161602974;
            break;
        default: 
            c_lat = 38.260019380893496;
            c_lng = 140.88214874267578;
            break;
        }

        //map.setCenter(new GLatLng(c_lat, c_lng), zoomlevel, G_NORMAL_MAP);
        map.panTo(new GLatLng(c_lat, c_lng));
        map.clearOverlays();
        httpObj = createXMLHttpRequest(readMapPoint);
            if(httpObj){
                var uri = "./getMapPoint.php?area=" + area + "&category=" + category + "&page=" + page ;
                //alert(uri);
                httpObj.open("GET",uri , true);
                httpObj.send(null);
            }
    }
    
    function readMapPoint(){
        if((httpObj.readyState == 4) && (httpObj.status == 200)){
            //alert(httpObj.responseText);
            //document.getElementById("adrs").value = httpObj.responseText;
            psdat = parseTabText(httpObj.responseText);
            maxRec = psdat.length;
            
            var latMin, latMax, lngMin, lngMax, latCenter, lngCenter; //中心点の求める
            for(var i=0; i < maxRec; i++){
               setMapPoint(psdat[i][0], psdat[i][1], psdat[i][2]);
               if( i == 0){
                    latMin = psdat[i][0];
                    latMax = psdat[i][0];
                    lngMin = psdat[i][1];
                    lngMax = psdat[i][1];
                }
                if(latMin > psdat[i][0]){latMin = psdat[i][0]}
                if(latMax < psdat[i][0]){latMax = psdat[i][0]}
                if(lngMin > psdat[i][1]){lngMin = psdat[i][1]}
                if(lngMax < psdat[i][1]){lngMax = psdat[i][1]}
            }
            //ページのデータの出力
            putPageDat(1);
            //中心点を求める
            latCenter = (parseFloat(latMin) + parseFloat(latMax)) / 2;
            lngCenter = (parseFloat(lngMin) + parseFloat(lngMax)) / 2;
            var rectObj = new GLatLngBounds(new GLatLng(latMin,lngMin), new GLatLng(latMax,lngMax));
            var zmlv    = map.getBoundsZoomLevel(rectObj);
            if(zmlv > 16) zmlv = 16;
            map.setZoom(zmlv);
            map.panTo(new GLatLng(latCenter, lngCenter));

        }else{
            document.getElementById("newdata").innerHTML = "<b>Loading...</b>";
        }
    }
    
    
    function putPageDat(page){
        var newdatStr = "";
        //表示する最初のレコード
        var sttrec  = (page - 1) * pageMaxNum;
        //表示する最後のレコード
        var endrec  = page * pageMaxNum;
        if(endrec > maxRec){ endrec = maxRec;}

        //--------------------------------------------------------------------
        // ページナビ
        //--------------------------------------------------------------------
         newdatStr += "<div id=\"pnavi_rap\" name=\"pnavi\"><div id=\"pnavi\"> 検索結果:" + maxRec + "件　<br>";
        //前のページのリンク
        if(page > 1){
            newdatStr +=  
            "<span onclick='putPageDat(" + (page - 1) + ");'>" + 
            "<a href='#pnavi'>" + 
            "前へ" + 
            "</a></span>\n";
        }else{
            newdatStr +=  "<span>前へ</span>";
        }
       newdatStr +=  "｜" + (sttrec + 1) + " ～ "  + endrec + "件｜";
        //次のページのリンク
        if(maxRec > endrec){
            newdatStr +=  
            "<span onclick='putPageDat(" + (page + 1) + ");'>" + 
            "<a href='#pnavi'>" + 
            "次へ" + 
            "</a></span>\n";
        }else{
            newdatStr +=  "<span>次へ</span>"
        }
        newdatStr += "</div></div><div id=\"newdatax\">\n";
        //--------------------------------------------------------------------

        for(var i = sttrec; i < endrec; i++){
           var photo_str = "";
           if (psdat[i][9].length > 0){
                photo_str = "<img src=\"." + psdat[i][9] + "_s.jpg\">";
            }else{
                photo_str = "<img src=\"./noimage.jpg\">";
                //photo_str = "";
            }
           newdatStr +=
            "<div onclick='readMarkerDat(" + psdat[i][2] + ");' class=\"n1\">" + 
            "<div class=\"ttl\"><a href='#maptitle'>" + 
            psdat[i][3]  + "</a></div>" + 
            "<table><tr><td valign=top>"     +
            psdat[i][13] + "<br>" + 
            psdat[i][5]  + "<br>" + 
            psdat[i][10] + "<br></td><td>" + 
            photo_str + 
            "</td></tr></table></div>\n";
        }
        //alert(newdatStr);
        newdatStr += "</div>\n";

        //--------------------------------------------------------------------
        // ページナビ
        //--------------------------------------------------------------------
         newdatStr += "<div id=\"pnavi_rap\"><div id=\"pnavi\"> 検索結果:" + maxRec + "件　<br>";
        //前のページのリンク
        if(page > 1){
            newdatStr +=  
            "<span onclick='putPageDat(" + (page - 1) + ");'>" + 
            "<a href='#pnavi'>" + 
            "前へ" + 
            "</a></span>\n";
        }else{
            newdatStr +=  "<span>前へ</span>";
        }
       newdatStr +=  "｜" + (sttrec + 1) + " ～ "  + endrec + "件｜";
        //次のページのリンク
        if(maxRec > endrec){
            newdatStr +=  
            "<span onclick='putPageDat(" + (page + 1) + ");'>" + 
            "<a href='#pnavi'>" + 
            "次へ" + 
            "</a></span>\n";
        }else{
            newdatStr +=  "<span>次へ</span>"
        }
        newdatStr += "</div></div><div id=\"newdatax\">\n";
        //--------------------------------------------------------------------

        setTimeout(function () {document.getElementById("newdata").innerHTML = newdatStr}, 50);
        
        
        
    }
    
//------------------------------------------------------------------------------
// マップにポイントする処理
//------------------------------------------------------------------------------
    function setMapPoint(lat, lng, hiyari_id){
        var markerdat = new GMarker(new GPoint(lng, lat), icon);
        markerdat.hiyari_id = hiyari_id;
        map.addOverlay(markerdat);
    }


//------------------------------------------------------------------------------
// ズームレベルが変更されたときの処理
//------------------------------------------------------------------------------
    function onChangeZoom(oldZoomLevel, newZoomLevel){
        zoomlevel = newZoomLevel;
    } 
    
//------------------------------------------------------------------------------
// マーカーをクリックされたときの処理
//------------------------------------------------------------------------------
    function markclick(marker, point){
        //alert(marker.idx);
        if(marker){
            if(marker.hiyari_id){
                //alert(marker.hiyari_id);
                readMarkerDat(marker.hiyari_id);
                
            }
        }
    }
    
    function readMarkerDat(hiyari_id){
        httpObj2 = createXMLHttpRequest(setMarkerDat);
        if(httpObj2){
            var uri = "./readMarkerDat.php?id=" + hiyari_id;
            //alert(uri);
            httpObj2.open("GET",uri , true);
            httpObj2.send(null);
        }
    }
    function setMarkerDat(){
        if((httpObj2.readyState == 4) && (httpObj2.status == 200)){
            //alert(httpObj2.responseText);
            var psdatx = parseTabText(httpObj2.responseText);
            var imghtml = "";
            if (psdatx[0][7].length > 0){
                imghtml = "<img src=\"." + psdatx[0][7] + "_s.jpg\" ><br>";
            }
			//画像の読み込みキャッシュ
			imgx = new Image();
			imgx.src = "." + psdatx[0][7] + "_s.jpg ";

            htmlStr = "<a href=\"./trariDisp.php?id=" + psdatx[0][0]  + 
                      "\" target=\"_blank\"><div id=\"mkwin\">" + 
                      psdatx[0][1] + 
                      "<br>" + 
                      imghtml + 
                      psdatx[0][10] + 
                      "<br>" + 
                      psdatx[0][2] + 
                      "<br><span>(ここをクリックするとウィンドウが開きます)</span>" + 
                      "</div></a>";
            //alert(psdatx[0].length);
            curLatLng = new GLatLng(psdatx[0][3], psdatx[0][4]);
            //map.openInfoWindowHtml(curLatLng, htmlStr);
            //画像の読み込み時間を考慮して。
            setTimeout(function () {map.openInfoWindowHtml(curLatLng, htmlStr);}, 250);
            //map.setZoom(15);
        }else{
            //document.getElementById("test").innerHTML = "<b>Loading...</b>";
        }
    }
    
    function openWindow(hiyari_id){
        readMarkerDat(hiyari_id);
        map.panTo(curLatLng);
    }

    function openWindow2(){
        map.openInfoWindowHtml(curMarker.getPoint(), html_str);
    }
    
    function mapResize(mapsize){
        myN6 = document.getElementById; // ブラウザ(N6)のチェック用
        myIE = document.all;            // ブラウザ(IE)のチェック用
        myN4 = document.layers;         // ブラウザ(N4)のチェック用
        myOpera = window.opera;         // ブラウザ(Opera)のチェック用
        //var menusize = mapsize * 1.05;
        var mapPos    = getElementPosition("map");
        var dataPos   = getElementPosition("newdata");
        var footerPos = getElementPosition("footer");
        var linkPos   = getElementPosition("link");
        var footerHeight = footerPos.height + 10;
        //alert(mapPos.top);
        //alert(dataPos.top);
        
        var mapHeight     = 500; //初期値 500
        var dataHeight    = 500; //初期値 500

        if(myIE){
            if(myOpera){
                mapHeight = "600px";
            }else{
                mapHeight = document.documentElement.clientHeight - mapPos.top - footerHeight  + "px";
                dataHeight = document.documentElement.clientHeight - dataPos.top - footerHeight  - linkPos.height  + "px";
            }
        }else if(myN6){
            mapHeight = innerHeight  - mapPos.top  - footerHeight + "px";
            dataHeight = innerHeight - dataPos.top - footerHeight - linkPos.height + "px";
        }else if(myN4){
            mapHeight = innerHeight  - mapPos.top  - footerHeight  - linkPos.height + "px";
            dataHeight = innerHeight - dataPos.top - footerHeight  - linkPos.height + "px";
        }
        
        document.getElementById("map").style.height   = mapHeight;
        document.getElementById("newdata").style.height = dataHeight;
        map.checkResize();
    }
    
    function mapResize2(mapsize){
        myN6 = document.getElementById; // ブラウザ(N6)のチェック用
        myIE = document.all;            // ブラウザ(IE)のチェック用
        myN4 = document.layers;         // ブラウザ(N4)のチェック用
        if(myIE){
            document.getElementById("map").style.height = document.documentElement.clientHeight * mapsize  + "px";
        }else if(myN6){
            document.getElementById("map").style.height = innerHeight * mapsize + "px";
        }else if(myN4){
            document.getElementById("map").style.height = innerHeight * mapsize + "px";
        }
        map.checkResize();
    }
    
    function getElementPosition(element) {
        var offsetTrail  = (typeof element == 'string') ? document.getElementById(element) : element;
        var offsetLeft   = 0;
        var offsetTop    = 0;
        var offsetHeight = 0;
    
        if(offsetTrail.offsetHeight){
            offsetHeight = offsetTrail.offsetHeight;
        }

        while (offsetTrail) {
            offsetLeft   += offsetTrail.offsetLeft;
            offsetTop    += offsetTrail.offsetTop;
            //alert(offsetTrail.offsetHeight + " " + offsetTrail.offsetTop);
            offsetTrail  =  offsetTrail.offsetParent;
        }
    
        if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != "undefined") {
            offsetLeft   += document.body.leftMargin;
            offsetTop    += document.body.topMargin;
        }
        
    
    
        return ({left: offsetLeft, top: offsetTop, height:offsetHeight});
    }

    //ストリートビューの表示
    function panoramaOpen(){
        map.closeInfoWindow();
        var panorama_html = "<div id=\"mapwin\" style=\"width:500px;height:250px\"><\/div>";
        map.openInfoWindowHtml(curMarker.getPoint(), panorama_html);
        panoramaOptions = {latlng:curMarker.getLatLng()};
        panorama  = new GStreetviewPanorama(document.getElementById("mapwin"), panoramaOptions);
        GEvent.addListener(panorama, "error", handleNoFlash);
    }


    function handleNoFlash(errorCode){
      if (errorCode == 600) {// 未対応エリアの時のエラーナンバー
        //document.getElementById("strtv").innerHTML = '<p style="margin-top:10px;">Googleマップ・ストリートビュー未対応地域です。</p>';
        alert("Googleマップ・ストリートビュー未対応地域です。");
        return;
      }
      if (errorCode == FLASH_UNAVAILABLE) {
        alert("お使いのブラウザがFlashに対応していないためGoogleマップ・ストリートビューを表示できません。");
        return;
      }
        
    }

    ///////////////////////////////////////////////////////////////////////////
    //google map end
    ///////////////////////////////////////////////////////////////////////////
    

