    ///////////////////////////////////////////////////////////////////////////
    //google map
    ///////////////////////////////////////////////////////////////////////////
    var map;
    var icon;
    var ne_glat // 表示範囲北東頂点座標
    var sw_glat // 表示範囲南西頂点座標
    var clickflg = 0;
    var htmlstr;
    var pageMaxNum = 20; //１ページに表示する件数
    var maxRec     = 0;  //検索件数
    var msdat;           //おみせデータ
    var g_rdPage;        //現在のページ
    var mk = new Array();

    var initlat = "38.260019380893496";
    var initlng = "140.88214874267578";
   
    //アイコンの設定
    icon = new GIcon();
    icon.image = "./img/camera.png";
    icon.iconSize = new GSize(24, 21);
    icon.iconAnchor = new GLatLng(5, 10);
    icon.infoWindowAnchor = new GLatLng(5, 10);

    function googlemap_init(){
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl()); 
        map.addControl(new GMapTypeControl()); 
        map.setCenter(new GLatLng(initlat, initlng ), 16, G_NORMAL_MAP); //仙台駅
        putMapData(1);
        //イベント登録
        //GEvent.addListener(map, "moveend", putMapData);
        GEvent.addListener(map, "click", windowopen);
    }
    
    //アイコン表示メイン関数
    function putMapData(page){
        if(clickflg == 0){
            map.clearOverlays();
            getMapData(page);
        }
        clickflg = 0;
    }

    //データを読み込む処理
    function getMapData(page){//

        httpObj = createXMLHttpRequest(readData);

        if(httpObj){
            sw_glat = map.getBounds().getSouthWest();
            ne_glat = map.getBounds().getNorthEast();
            //alert(sw_glat.lat()); //緯度
            //alert(ne_glat.lat());
            //alert(sw_glat.lng()); //経度
            //alert(ne_glat.lng());

            //var uri = "./mapadressx.php?s_lat=" + sw_glat.lat() + "&n_lat=" + ne_glat.lat()
            //                             + "&w_lng=" + sw_glat.lng() + "&e_lng=" + ne_glat.lng();


            var areaDat   = document.search.area.value;
            var ctgryDat  = document.search.category.value;
            var keywdDat  = encodeURI(document.search.keyword.value);
            var areaflg   = document.search.areaflg.value;
            
            //alert(areaflg);

            g_rdPage  = page;
            
            var uri = "./getMapData.php?page="        + 
                                        page          + 
                                        "&category="  + 
                                        ctgryDat      + 
                                        "&area="      + 
                                        areaDat       + 
                                        "&keywd="     + 
                                        keywdDat      + 
                                        "&s_lat="     + 
                                        sw_glat.lat() + 
                                        "&n_lat="     + 
                                        ne_glat.lat() + 
                                        "&w_lng="     + 
                                        sw_glat.lng() + 
                                        "&e_lng="     + 
                                        ne_glat.lng() + 
                                        "&areaflg="   +
                                        areaflg;


            //alert(uri);

            //document.getElementById("test").innerHTML = uri;
            //alert(uri);
            httpObj.open("GET", uri, true);
            httpObj.send(null);
        }

    }

    //データを読み込む処理
    function readData(){
        if((httpObj.readyState == 4) && (httpObj.status == 200)){
            //document.getElementById("test").innerHTML = "OK";
            //alert(httpObj.responseText);
            //document.getElementById("test").innerHTML = httpObj.responseText;

            msdat = parseTabText(httpObj.responseText);

            //ページデータを出力
            putPageDat(); 
        }else{
            //document.getElementById("test").innerHTML = "<b>Loading...</b>";
        }
    }
    

    //データを表示する処理
    
    
    var intimers = new Array();
    var images   = new Array();
    
    function putPageDat(){
        var msDatHtml = "";
        if(msdat[0][12]){ //msdat[0][12] 検索結果件数
            maxRec = msdat[0][12];
            //表示する最初のレコード
            var sttrec     = (g_rdPage - 1) * pageMaxNum;
            var viewMaxRec = msdat.length; //表示件数
            var endrec     = g_rdPage * pageMaxNum;
            if(endrec > maxRec){endrec = maxRec;}

            document.getElementById("kekka").innerHTML = "検索結果: <span>" + msdat[0][12] + "</span> 件" ;

             //ページコントロール部（上）
            msDatHtml += "<div class=\"pagectrl\">";

            if((g_rdPage - 1) != 0){
                msDatHtml += "<a href=\"#kekka\" onclick='putMapData(" + (g_rdPage - 1) + ")'> 前へ </a> | ";
            }else{
                msDatHtml += " <span>前へ</span> | ";
            }

            msDatHtml += (sttrec + 1) + "～" + endrec + "件" ;

            if(endrec < maxRec){
                msDatHtml += " | <a href=\"#kekka\" onclick='putMapData(" + (g_rdPage + 1) + ")'> 次へ </a>";
            }else{
                msDatHtml += " | <span>次へ</span> ";
            }
            
            msDatHtml +=  "</div>"

            
             //データ表示部
            for(var i = 0; i < viewMaxRec; i++){
                 //地図上にマーカーを追加する処理
                 images[i] = new Image();
                 images[i].src = "http://midekesain.com" + msdat[i][4] + "_s.jpg";
                 intimers[i] = setInterval("addMarker(" + i + ")", 500);

               var photo_str = "";
               if (msdat[i][4].length > 0){
                    photo_str = "<img src=\"./sumphoto.php?photo=" + msdat[i][4] + "_s.jpg\">";
                }else{
                    photo_str = "<img src=\"./noimage.jpg\">";
                    //photo_str = "";
                }
                if(!(i%2)){
                    msDatHtml +="<div class=\"msdat\">" ;
                }else{
                    msDatHtml +="<div class=\"msdat\" style=\"background:#f5f5f5\">" ;
                }
                
                msDatHtml +="<a href=\"javascript:void(0)\" onclick='photoclick(" + i + ")' >"
                          + photo_str
                          + "<\/a>"
                          + "<div class=\"mstitle\">" 
                          + "<a href=\"javascript:void(0)\" onclick='photoclick(" + i + ")' >"
                          + msdat[i][3] 
                          + "<\/a>"
                          + "<\/div>"
                          + "<a href=\"javascript:void(0)\" onclick='photoclick(" + i + ")' >"
                          + "<span>"
                          + msdat[i][5] + "<br>"
                          + msdat[i][7] + "<br>"
                          //+ msdat[i][6]
                          + "<\/span>"
                          + "<\/a>"
                          + "<\/div>";
                
            }
            
             var areaflg   = document.search.areaflg.value;
             if(areaflg == 0){
                 //すべてのマーカーが表示できるように自動的にズームレベルを変える
                 //端を求める(lat)
                 for(i=0;i<msdat.length;i++){
                    if(i == 0){
                        latMin = msdat[0][1];
                        latMax = msdat[0][1];
                    }
                    if(latMin > msdat[i][1]){latMin = msdat[i][1]}
                    if(latMax < msdat[i][1]){latMax = msdat[i][1]}
                 }
                 //端を求める(lng)
                 for(i=0;i<msdat.length;i++){
                    if(i == 0){
                        lngMin = msdat[0][2];
                        lngMax = msdat[0][2];
                    }
                    if(lngMin > msdat[i][2]){lngMin = msdat[i][2]}
                    if(lngMax < msdat[i][2]){lngMax = msdat[i][2]}
                 }
             
                 //alert(lngMax);

                 //中心点を求める
                 latCenter = (parseFloat(latMin) + parseFloat(latMax)) / 2;
                 lngCenter = (parseFloat(lngMin) + parseFloat(lngMax)) / 2;
             
                 var rectObj = new GLatLngBounds(new GLatLng(latMin,lngMin), new GLatLng(latMax,lngMax));
                 map.setZoom(map.getBoundsZoomLevel(rectObj));
                 map.panTo(new GLatLng(latCenter, lngCenter));
            }
             

             //ページコントロール部(下)
             if(viewMaxRec > 10){
                msDatHtml += "<div class=\"pagectrl2\">";
    
                if((g_rdPage - 1) != 0){
                    msDatHtml += "<a href=\"#kekka\" onclick='putMapData(" + (g_rdPage - 1) + ")'> 前へ <\/a> | ";
                }else{
                    msDatHtml += " 前へ | ";
                }
    
                msDatHtml += (sttrec + 1) + "～" + endrec + "件" ;
    
                if(endrec < maxRec){
                    msDatHtml += " | <a href=\"#kekka\" onclick='putMapData(" + (g_rdPage + 1) + ")'> 次へ <\/a>";
                }else{
                    msDatHtml += " | 次へ ";
                }
                
                msDatHtml +=  "<\/div>"
            }

        }else{
            document.getElementById("kekka").innerHTML = "検索結果:<span>0<\/span>件" ;
            msDatHtml += "<div class=\"pagectrl\">該当なし<\/div>";
        }
        
        document.getElementById("photorec").innerHTML = msDatHtml;
        location.href = "#kekka";
    }

    function addMarker(i){
        if(images[i].complete){
            clearInterval(intimers[i]);
            var iconx = new GIcon();
            iconx.image = images[i].src;
            var ht = images[i].height / 2.5;
            var wt = images[i].width  / 2.5;
            iconx.iconSize = new GSize(wt, ht);
            iconx.iconAnchor = new GLatLng(wt / 2, ht / 2);
            iconx.infoWindowAnchor = new GLatLng(wt / 2, ht / 2);
            mk[i]        = new GMarker(new GPoint(msdat[i][2], msdat[i][1]), iconx);
            mk[i].id     = msdat[i][0];
            mk[i].lat    = msdat[i][1];
            mk[i].lng    = msdat[i][2];
            mk[i].name   = msdat[i][3];
            mk[i].photo  = msdat[i][4];
            map.addOverlay(mk[i]);
        }
    }

    //タブ区切りテキストを解析して表示
    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 windowopen(marker, point){
        //alert(marker.idx);
        if(marker){
            if(marker.id){
               if(marker.photo != ""){ 
                    photo = "<br><img src='." + marker.photo + "_s.jpg'>"
                    //画像の読み込みキャッシュ
                    img = new Image();
                    img.src = ".." + marker.photo + "_s.jpg ";
                }else{
                    photo = "";
                }
                htmlstr  = "<div class='mapwindow'><a href='./photodisp.php?imgid=" + 
                                                             marker.id + "' target='_blank'>" + 
                                                             marker.name + 
                                                             photo + 
                                                            "<br><span>（ここをクリックすると新しいウィンドウで開きます）<\/span>" +
                                                            "<\/a><\/div>";
            //map.panTo(new GLatLng(marker.lat, marker.lng));
            //map.setCenter(new GLatLng(marker.lat, marker.lng));
            //clickflg = 1;
            setTimeout(function () {map.openInfoWindowHtml(new GLatLng(marker.lat, marker.lng), htmlstr)}, 250);
            }
        }
    }
    
    function photoclick(mkno){
        if(mk[mkno]){
            if(mk[mkno].photo != ""){ 
                photo = "<br><img src='." + mk[mkno].photo + "_s.jpg'>"
                //画像の読み込みキャッシュ
                img = new Image();
                img.src = ".." + mk[mkno].photo + "_s.jpg ";
            }else{
                photo = "";
            }
            htmlstr  = "<div class='mapwindow'><a href='./photodisp.php?imgid=" + 
                                                         mk[mkno].id + "' target='_blank'>" + 
                                                         mk[mkno].name + 
                                                         photo + 
                                                        "<br><span>（ここをクリックすると新しいウィンドウで開きます）<\/span>" +
                                                        "<\/a><\/div>";
        //map.panTo(new GLatLng(mk[mkno].lat, mk[mkno].lng));
        //map.setCenter(new GLatLng(mk[mkno].lat, mk[mkno].lng));
        //clickflg = 1;
        setTimeout(function () {map.openInfoWindowHtml(new GLatLng(mk[mkno].lat, mk[mkno].lng), htmlstr)}, 250);
        }
    }
    
    function mapResize(){
        myN6 = document.getElementById; // ブラウザ(N6)のチェック用
        myIE = document.all;            // ブラウザ(IE)のチェック用
        myN4 = document.layers;         // ブラウザ(N4)のチェック用
        myOpera = window.opera;         // ブラウザ(Opera)のチェック用

        var mapPos          = getElementPosition("map");  //マップの表示位置を取得
        //alert(mapPos.left + " " + mapPos.top);
        var mapHeight    = 500; //初期値 500
        var footerPos       = getElementPosition("footer");  //フッターの表示位置を取得
        var footerHeight    = footerPos.height + 18;
        //alert(footerPos.left + " " + footerPos.top + " " + footerPos.height);
        if(myIE){
            if(myOpera){
                mapHeight = "600px";
            }else{
                mapHeight = document.documentElement.clientHeight - mapPos.top - footerHeight  + "px";
            }
        }else if(myN6){
            mapHeight = innerHeight  - mapPos.top - footerHeight + "px";
        }else if(myN4){
            mapHeight = innerHeight  - mapPos.top - footerHeight + "px";
        }
        
        document.getElementById("map").style.height   = mapHeight;
        document.getElementById("kekkarap").style.height = mapHeight;
        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});
    }

    
    ///////////////////////////////////////////////////////////////////////////
    //google map end
    ///////////////////////////////////////////////////////////////////////////
    

