//-----------------------------------------------------------------------------
// 変数設定
//-----------------------------------------------------------------------------
var map;
var curPoint;
var icon;
var mapDispFlg;
var mapExitFlg;
var mpdt;
var omdt;
var mk = new Array();
var httpObj;

//-----------------------------------------------------------------------------
// 初期設定
//-----------------------------------------------------------------------------
function init(){
    if(typeof curMarker != 'undefined'){
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl()); 
        map.addControl(new GMapTypeControl()); 
        var latlng = new GLatLng( mlat , mlng); 
        map.setCenter(latlng, 16, G_NORMAL_MAP);
        map.addOverlay(curMarker);
        var whtml = "<div>" + curMarker.evtName + "</div>";
        map.openInfoWindowHtml(new GLatLng(mlat, mlng), whtml);

        GEvent.addListener(map, "click", windowopen);
    }
}

//写真データを読み込む処理
var intimers = new Array();
var images   = new Array();
var mk       = new Array();

function getOmiseData(){
    map.clearOverlays();
    map.addOverlay(curMarker);
    var sw_glat = map.getBounds().getSouthWest();
    var ne_glat = map.getBounds().getNorthEast();
    var uri = "./getajaxurl.php?url=http://midekesain.com/getOmise.php"  + 
                                "&s_lat="     + 
                                sw_glat.lat() + 
                                "&n_lat="     + 
                                ne_glat.lat() + 
                                "&w_lng="     + 
                                sw_glat.lng() + 
                                "&e_lng="     + 
                                ne_glat.lng() +
                                "&plain=1";
    httpObj = createXMLHttpRequest(function(){
        if((httpObj.readyState == 4) && (httpObj.status == 200)){

            omdat = parseTabText(httpObj.responseText);

            //おみせるアイコンの設定
            var icono = new GIcon();
            icono.image = "http://omisesuru.com/image/o.png";
            icono.iconSize = new GSize(20, 22);
            icono.iconAnchor = new GLatLng(10, 11);
            icono.infoWindowAnchor = new GLatLng(10, 11);
            
            //alert(omdat.length);
            for(var i=0; i < omdat.length; i++){
                if(omdat[i][1]){
                    var markerdat = new GMarker(new GPoint(omdat[i][3], omdat[i][4]), icono);
                    markerdat.omiseid    = omdat[i][0];
                    markerdat.omisename  = omdat[i][1];
                    markerdat.omiseimage = omdat[i][2];
                    markerdat.omiselat   = omdat[i][4];
                    markerdat.omiselng   = omdat[i][3];
                    map.addOverlay(markerdat);
                }
            }
        }
    });
    
    if(httpObj){
        httpObj.open("GET", uri, true);
        httpObj.send(null);
    }
}


function getPhotoData(){
    map.clearOverlays();
    map.addOverlay(curMarker);
    var sw_glat = map.getBounds().getSouthWest();
    var ne_glat = map.getBounds().getNorthEast();
    var page = 1;
    var uri = "./getajaxurl.php?url=http://midekesain.com/getMapData.php&page="  + 
                                page          + 
                                "&s_lat="     + 
                                sw_glat.lat() + 
                                "&n_lat="     + 
                                ne_glat.lat() + 
                                "&w_lng="     + 
                                sw_glat.lng() + 
                                "&e_lng="     + 
                                ne_glat.lng() +
                                "&areaflg=1"  +
                                "&plain=1";

    //alert(uri);
    httpObj = createXMLHttpRequest(function(){
            if((httpObj.readyState == 4) && (httpObj.status == 200)){
                mpdt = parseTabText(httpObj.responseText);
                //alert(mpdt);
                if(mpdt[0][12]){ //mpdt[0][12] 検索結果件数
                    var viewMaxRec = mpdt.length; //表示件数
                    for(var i = 0; i < viewMaxRec; i++){
                         //地図上にマーカーを追加する処理
                         images[i]     = new Image();
                         images[i].src = "http://midekesain.com" + mpdt[i][4] + "_s.jpg";
                         intimers[i] = setInterval("addMarker(" + i + ")", 500);
                    }
                }
            }
        });
    httpObj.open("GET", uri, true);
    httpObj.send(null);
        


}

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(mpdt[i][2], mpdt[i][1]), iconx);
        mk[i].photoid  = mpdt[i][0];
        mk[i].lat      = mpdt[i][1];
        mk[i].lng      = mpdt[i][2];
        mk[i].name     = mpdt[i][3];
        mk[i].photo    = mpdt[i][4];
        map.addOverlay(mk[i]);
    }
}

//マーカーをクリックする処理
var image;
var intimer;
function windowopen(marker, point){
    if(marker){
        if(marker.omiseid){
            var photo = "";
           if(marker.omiseimage != ""){ 
               //画像の読み込みキャッシュ
               image = new Image();
               image.src = "http://omisesuru.com" + marker.omiseimage + "_s.jpg";
               intimer = setInterval(function(){
                   if(image.complete){
                       clearInterval(intimer);
                       htmlstr  = "<div class='mapwindow'><a href='http://omisesuru.com/shop/" + 
                                                     marker.omiseid + 
                                                     "' target='_blank'>" + 
                                                     marker.omisename + 
                                  "<br><img src='http://omisesuru.com" + marker.omiseimage + "_s.jpg' height='" + image.height +  "' width='" + image.width + "'>" +
                                                    "<br><span>（ここをクリックすると新しいウィンドウで開きます）<\/span>" +
                                                    "<\/a><\/div>";
                       map.openInfoWindowHtml(new GLatLng(marker.omiselat, marker.omiselng), htmlstr);
                   }
               }, 300);
           
           }else{
               htmlstr  = "<div class='mapwindow'><a href='http://omisesuru.com/shop/" + 
                                                     marker.omiseid + 
                                                     "' target='_blank'>" + 
                                                     marker.omisename + 
                                                    "<br><span>（ここをクリックすると新しいウィンドウで開きます）<\/span>" +
                                                    "<\/a><\/div>";
               map.openInfoWindowHtml(new GLatLng(marker.omiselat, marker.omiselng), htmlstr);
           }
           return;

        }
        
        if(marker.photoid){
           if(marker.photo != ""){ 
                photo = "<br><img src='http://midekesain.com" + marker.photo + "_s.jpg'>"
                //画像の読み込みキャッシュ
                img = new Image();
                img.src = ".." + marker.photo + "_s.jpg ";
            }else{
                photo = "";
            }
            htmlstr  = "<div class='mapwindow'><a href='http://midekesain.com/photodisp.php?imgid=" + 
                                                         marker.photoid + "' 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);
            return;
        }
        
        
        if(marker.evtName){
            var whtml = "<div>" + marker.evtName + "</div>";
            map.openInfoWindowHtml(new GLatLng(mlat, mlng), whtml);
        }
        
        
    }
}

//タブ区切りテキストを解析して表示
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;
}

