
var rccgm;
var tileoverlay;
var rgeocode;
var resultBox;
var zoom;
var latlng;

var clrNone = new Rococo.tk.Color(153,153,153);  // #999
var clrLocal = new Rococo.tk.Color(255,51,0); // #f30
var clrMncpl = new Rococo.tk.Color(255,153,0); // #f90

Rococo.init.push(init);

function setResult(mess,color) {
  resultBox.clearAllChildren();

  if( color ) {
    resultBox.style.borderColor = color.getCssText();
  }
  else {
    resultBox.style.borderColor = clrNone.getCssText();
  }

  if( mess ) {
    resultBox.writeXhtml('<span>'+mess+'</span>');
  }
  else {
    resultBox.writeXhtml('<span>(地名)</span>');
  }
}

function rgShortHand() {

  var latlng_new = rccgm.map.getCenter();
  var zoom_old = zoom;
  zoom = rccgm.map.getZoom();

  if( !latlng || (latlng_new.lat() != latlng.lat() || latlng_new.lng() != latlng.lng()) || (zoom-11)*(zoom_old-11) <= 0 ) {
    latlng = latlng_new;
    if( zoom >= 4 ) {
      var req = new Rococo.cl.jsonp.JsonpRequest('rgeocode', rgeocode.url, rgeocode.decision );
      req.request('lat='+(latlng.lat())+'&lon='+(latlng.lng()),function(s,r) {onGotRGShortHand(s,r);});
    }
    else {
      setResult();
    }
  }
}

function onGotRGShortHand( s, r ) {
  if( s == false ) {
    setResult();
  }
  else {
    var rstr = r.result.prefecture.pname + ' ' + r.result.municipality.mname;
    var color;
    if( r.result.local ) {
      if( zoom >= 11 ) {
        rstr = rstr + ' ' + r.result.local[0].section;
      }
      color = clrLocal;
    }
    else {
      color = clrMncpl;
    }
    setResult( rstr + ' あたり', color );
  }
}

function init() {
  rccgm = new Rococo.rccgm.Rccgm( document.getElementById('map') );
  resultBox = Rococo.em.recreateElement(document.getElementById('result'));

  GEvent.addListener(rccgm.map, "moveend", rgShortHand );

  rgeocode = Rococo.jp.cl.jsonp.rgeocode;
  rgeocode.url.url_body = 'http://www.finds.jp/ws/rgeocode.php';
  // rgeocode.url.url_body = (URL);

  // zoom
  zoom = 99;

  // 一回目の位置参照
  rgShortHand();

};

//

