var map;

_.ck;
_.list;
_.KEYS;
_.tmpf = new Array;
_.markerGroup = new Array;

google.load('maps', '2',{'language':'ja'});

_.mapload = function(mode,id,lat,lng,zoom,maptype,opts){
  if(GBrowserIsCompatible()){
    _.list = new Object();
    _.KEYS = new Array();
    _.ck = 0;
    if(!map){
      if(!lat || !lng || !zoom){
        var c = _.mapCookie(mode);
        if(!lat) var lat = c['lat'];
        if(!lng) var lng = c['lng'];
        if(!zoom) var zoom = c['zoom'];
        if(!maptype) var maptype = c['maptype'];
      }
      
      map = new google.maps.Map2(document.getElementById('map'));
      
      var point = new GLatLng(lat,lng);
      map.setCenter(point,parseFloat(zoom));
      
      map.addMapType(G_PHYSICAL_MAP);
      map.addMapType(G_SATELLITE_3D_MAP);
      
      if((mode && mode != 'user')){
        map.addControl(new GSmallZoomControl3D());
      }else{
        map.addControl(new GLargeMapControl3D());
        //map.addControl(new GLargeMapControl());
      }
      
//      if(mode && mode != 'user'){
        map.addControl(new GMenuMapTypeControl(true, false));
//      }else{
//        //map.addControl(new GMapTypeControl(true, false));
//        map.addControl(new GHierarchicalMapTypeControl(true, false));
//      }
      
      if(mode != 'top'){
        map.addControl(new GScaleControl());
      }
      
      switch(maptype){
        case 'satellite': map.setMapType(G_SATELLITE_MAP); break;
        case 'hybrid': map.setMapType(G_HYBRID_MAP); break;
        case 'physical': map.setMapType(G_PHYSICAL_MAP); break;
      }
      
//      map.setUIToDefault()
//      map.enableRotation();
      
      new GKeyboardHandler(map);
      
      var maptypes = map.getMapTypes();
      for(var i = 0; i < maptypes.length; i++){
        if(maptypes[i].uc == 'm'){
          maptypes[i].getMaximumResolution = function(){
            return 22;
          }; continue;
        }
      }
      
      GEvent.addListener(map,'maptypechanged',function(){
        var newmaptype = _.getMapType();
        _.iw.f();
        _.cookie.grp('map',newmaptype,3);
        if(mode == 'nform') _.nmap.field();
      });
      
      map.enableKeyDragZoom({
        key: 'shift', 
        boxStyle: {border: '3px solid red', backgroundColor: 'transparent', opacity: .6},
        paneStyle: { backgroundColor: '#000000', opacity: 0.1 }
      });
      
      if(!mode && _.$('mapadd')){
        GEvent.addListener(map,'singlerightclick',function(xy){
          if(document.mfrm) return;
          _.em.form(null,null,map.fromContainerPixelToLatLng(xy));
        });
      }
      
      
      if(!mode || mode == 'user' || mode == 'del' || mode == 'node' || mode == 'nform'){
        GEvent.addListener(map, 'zoomend', function(oldLevel, newLevel){
          _.iw.f();
          _.cookie.grp('map',newLevel,2);
          _.parse_marker(mode,id);
          if(mode == 'nform') _.nmap.field();
          if(mode == 'node' && _.list[id]){
            _.highlightCircle(id);
          }
        });
        
        GEvent.addListener(map, 'moveend', function(){
          var center = map.getCenter();
          _.cookie.grp('map',center.y,0);
          _.cookie.grp('map',center.x,1);
          _.parse_marker(mode,id);
          if(mode == 'nform') _.nmap.field();
        });
        
        if(mode == 'nform') _.nmap.field();
        //if(mode != 'node') _.centerMarker();
        if($.inArray(mode,['node','nmap','nform']) == -1) _.centerMarker();
        _.parse_marker(mode,id,opts);
      }else if(mode == 'nmap'){
        _.parse_marker(mode,id,opts);
      }else if(mode == 'top'){
        _.parse_top_marker();
      }
      
      if(opts && opts.overlay){
        _.parse_overlay(id,mode);
      }
      
    }else{
      map.clearOverlays();
      map.checkResize();
      if(_.sv && _.sv.myPano){
        _.toggleSv(true);
      }else{
        _.centerMarker();
      }
      _.parse_marker(mode,id);
    }
    
    //var map.getSize())
    //_.mapPanDir();
    if(_.mapAds && _.ADS_ON) _.mapAds();
  }
}

_.mapPanDir = function(x,y){
  if(!x) var x = 0;
  if(!y) var y = 0;
  var s = map.getSize();
  map.panBy(new GSize(s.width*x, s.height*y));
}

_.parse_marker = function(mode,mid,opts){
  if(!mode) mode='';
  if(!mid) mid='';
  
  if(!mode){
    var c = _.mapCookie();
    if(c['lim'] == '-' && !c['memo']) return;
  }
  
  var bds = _.mapBounds();
  var dd = new Date();
  
  var q = {}
  q.type = 'map|bounds';
  q.mode = mode;
  if(mid) q.id = mid;
  q.dataType = 'json';
  q.bds = bds.join(',');
  if(_.KEYS.length > 0){
    var exc = _.KEYS.join(',');
    if(_.KEYS.length > 500){
      exc = exc.split(',').slice(_.KEYS.length-500).join(',');
    }
    q.exc = exc;
  }
  q.t = dd.getTime();
  var q_opts = (opts && typeof(opts) == 'object') ? '&' + _.query(opts) : '';
  var url = _.BP + 'ajax?' + _.query(q) + q_opts;
  var chk = new Array;
  $.getJSON(url,null,function(json){
    var markers = json.markers;
    for(var i in markers){
      var v = markers[i];
      var id = v.id;
      chk.push(id);
      if(typeof(_.list[id]) == 'undefined'){
        var lat = v.lat;
        var lng = v.lng;
        var iconN = v.icon;
        var ttl = v.ttl;
        var point = new GLatLng(lat,lng);
        var marker = _.mk.create(id,point,iconN,mode,ttl);
        _.list[id] = marker;
        if(!_.markerGroup[iconN]) _.markerGroup[iconN] = new Array;
        _.markerGroup[iconN].push(marker);
        _.KEYS.push(id);
        if(_.$('circleChk') && _.$('circleChk').checked){
          km = (_.$('circleSlt')) ? _.$('circleSlt').value : 0;
          _.polyCircle(point,km,id);
        }
        if(_.$('tglMarkerCB') && _.$('tglMarkerCB').checked) continue;
        map.addOverlay(marker);
      }
    }
    
    if(mode == 'node' && mid) _.highlightCircle(mid);
  
    if(_.$('mapProCB') && _.$('mapProCB').checked && _.$('mkCnt')){
      mkcntv = (_.KEYS.length > 0) ? _.KEYS.length : '';
      $('#mkCnt').html(mkcntv);
    }
    
    if(_.$('mapside') && _.KEYS.length > 0 && chk.length > 0){
      var c = _.mapCookie(1);
      if(c['parse'] == 'scr'){
        var q = {};
        q.id = mid;
        q.view = 'side';
        q.mode = mode;
        q.bds = bds.join(',');
        q.t = dd.getTime();
        _.get('map|bounds',q,{ds:'mapside'});
      }
    }
  });
}


_.initZoom = function(list){
  var gb;
  var first = 1;
  for(var index in list){
    var marker = list[index];
    if(first){
      gb = new GLatLngBounds(marker.getPoint(), marker.getPoint());
      first = 0;
    }else{
      gb.extend(marker.getPoint());
    }
  }
  var zoom = map.getBoundsZoomLevel(gb);
  map.setCenter(gb.getCenter(), zoom);
}


_.mapCookie = function(mode){
  var n = ['lat','lng','zoom','maptype','parse','icon','lim','tag','type','pro','star','memo'];
  var d = ['35.68112','139.76703','14','normal','','','','','','','',''];
  var v = [];
  if(_.cookie.get('map')){
    v = _.cookie.get('map').split('*');
  }
  var c = {};
  for(i=0; i < n.length; i++){
    c[n[i]] = v[i] ? v[i] : d[i];
  }
  return c;
}


_.mapBounds = function(){
  var bounds = map.getBounds();
  var southWest = bounds.getSouthWest();
  var northEast = bounds.getNorthEast();
  var maxX = _.ll(northEast.lng());
  var minX = _.ll(southWest.lng());
  var maxY = _.ll(northEast.lat());
  var minY = _.ll(southWest.lat());
  return [minY,minX,maxY,maxX];
}


_.getMapType = function(){
  switch(_.MAP.getCurrentMapType()){
    case G_NORMAL_MAP: return 'normal';
    case G_SATELLITE_MAP: return 'satellite';
    case G_HYBRID_MAP: return 'hybrid';
    case G_PHYSICAL_MAP: return 'physical';
  }
}


_.mapZoom = function(v){
  var z = map.getZoom();
  if(!v){
    z = (z <= 13) ? 15 : z + 2;
  }else if(v < 0){
    z = z + v;
  }
  map.setZoom(z);
}


_.mapPan = function(lat,lng){
  map.panTo(new GLatLng(lat,lng));
}


_.mapChg = function(lat,lng){
  if(!lat || !lng){
    var center = map.getCenter();
    var lat = center.y;
    var lng = center.x
  }
  if(map){
    var z = map.getZoom();
    _.cookie.grp('map',z,2);
  }
  _.cookie.grp('map',lat,0);
  _.cookie.grp('map',lng,1);
  _.cookie.grp('map','scr',4);
  location.href = _.BP + 'map';
}

_.c_marker;
_.centerMarker = function(){
  if(_.c_marker) map.removeOverlay(_.c_marker);
  var c_icon = new GIcon();
  c_icon.image = _.BP + 'parts/marker/center.png';
  c_icon.shadow = _.BP + 'parts/marker/center-shadow.png';
  c_icon.iconSize = new GSize(15,15);
  c_icon.shadowSize = new GSize(19,19);
  c_icon.iconAnchor = new GPoint(7,7);
  
  _.c_marker = new GMarker(map.getCenter(),c_icon);
  map.addOverlay(_.c_marker);
  
  GEvent.addListener(map, 'moveend', function(){
    map.removeOverlay(_.c_marker);
    if(_.sv && _.sv.myPano) return;
    _.c_marker = new GMarker(map.getCenter() , c_icon);
    map.addOverlay(_.c_marker);
  });
  
  return _.c_marker;
}

_.hCircle;
_.highlightCircle = function(id){
  var markerPoint = _.list[id].getPoint();
  var polyPoints = Array();
  
  if(_.hCircle) map.removeOverlay(_.hCircle);
  
  var mapNormalProj = G_NORMAL_MAP.getProjection();
  var mapZoom = map.getZoom();
  var clickedPixel = mapNormalProj.fromLatLngToPixel(markerPoint, mapZoom);

  var polySmallRadius = 15;
  var polyNumSides = 20;
  var polySideLength = 18;
  
  for (var a = 0; a<(polyNumSides+1); a++) {
    var aRad = polySideLength*a*(Math.PI/180);
    var polyRadius = polySmallRadius; 
           var pixelX = clickedPixel.x + polyRadius * Math.cos(aRad);
    var pixelY = clickedPixel.y + polyRadius * Math.sin(aRad);
    var polyPixel = new GPoint(pixelX,pixelY);
    var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom);
    polyPoints.push(polyPoint);
  }
  _.hCircle = new GPolygon(polyPoints,'#000000',2,0,'#990088',.2);
  map.addOverlay(_.hCircle);
}

_.geo = {
  arr: function(){
    var a = new Array;
    a['addr'] = '住所・駅・ｽﾎﾟｯﾄ';
    return a;
  },
  
  move: function(addr,zoom){
    var a = this.arr();
    if(!addr || addr == a['addr']) return;
    geocoder = new GClientGeocoder();
    geocoder.getLatLng(
      addr,
      function(point){
        if(!point){
          alert('「' + addr + '」がみつかりません');
        }else{
          if(!zoom){
            zoom = map.getZoom();
            if(zoom < 13) zoom = 15;
          }
          map.setCenter(point,zoom);
        }
      }
    );
  },
  
  reset: function(self,opt){
    var a = this.arr();
    _.fm.reset(self,a,opt);
  }
}

_.ll = function(v){
  if(!v) return;
  return Math.floor(v*1000000)/1000000;
}

//marker
_.mk = {
  create: function(id,point,iconN,mode,ttl){
    if(!iconN) iconN = '';
    var icon = new GIcon();
    icon.image = _.TP + 'marker/' + iconN + '-marker.png';
    icon.iconSize = new GSize(15,26);
    icon.iconAnchor = new GPoint(7,26);
    icon.shadow = _.TP + 'marker/-shadow.png';
    icon.shadowSize = new GSize(34,26);
    icon.infoWindowAnchor = new GPoint(15,5);
    if(mode == 'del' || mode == 'sv'){
      marker = new GMarker(point,{icon:icon,clickable:false});
      marker.id = id;
    }else{
      var marker = new GMarker(point,icon);
      marker.id = id;
      if(mode == 'node' || mode == 'list' || iconN == 'memo'){
        GEvent.addListener(marker, 'mouseover', function() {
          marker.tip = ttl;
          _.mk.tips(marker);
        });
        GEvent.addListener(marker,'mouseout', function() {
          tooltip.style.visibility='hidden';
        });
        if(iconN != 'memo'){
          GEvent.addListener(marker, 'click', function(){
            location.href = _.BP + 'map/' + id;
          });
        }
      }else if(mode == 'alert'){
        GEvent.addListener(marker, 'click', function(){
          map.removeOverlay(_.list[id]);
        });
      }else{
        GEvent.addListener(marker, 'click', this.click(marker,mode));
      }
    }
    
    return marker;
  },
  
  click: function(marker,mode){
    return function(){
      _.iw.m(marker,mode);
    }
  },
  
  remove: function(id){
    if(!id) return;
    if(!_.list[id]) return;
    map.removeOverlay(_.list[id]);
  },
  
  tgl: function(id,lat,lng,iconN,mode){
    if(_.list[id]){
      if(mode == 'list'){_.mapPan(lat,lng); return;}
      map.removeOverlay(_.list[id]);
      if(mode == 'alert'){_.list[id] = undefined; return;}
    }
    var point = new GLatLng(lat,lng);
    map.panTo(point);
    var marker = _.mk.create(id,point,iconN,mode);
    map.addOverlay(marker);
    _.list[id] = marker;
  },
  
  tips: function(marker){
    document.getElementById('map').appendChild(tooltip);
    tooltip.className = 'tooltip';
    tooltip.innerHTML = marker.tip;
    var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
    var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
    var anchor=marker.getIcon().iconAnchor;
    var width=marker.getIcon().iconSize.width;
    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
    pos.apply(tooltip);
    tooltip.style.visibility = 'visible';
  }
}

var tooltip = document.createElement('div');

_.d_marker;
_.dm = {
  create: function(point){
    if(_.d_marker) map.removeOverlay(_.d_marker);
    var icon = new GIcon();
    icon.image = _.TP + 'marker/add-marker.png';
    icon.shadow = _.TP + 'marker/-shadow.png';
    icon.iconSize = new GSize(15,26);
    icon.iconAnchor = new GPoint(7,26);
    icon.shadowSize = new GSize(34,26);
    icon.infoWindowAnchor = new GPoint(15,5);
    _.d_marker = new GMarker(point,{icon:icon,draggable:true});
    return _.d_marker;
  },
  
  remove: function(){
    if(_.d_marker){
      map.removeOverlay(_.d_marker);
      if(id = _.d_marker.id){
        if(_.list[id]){
          map.removeOverlay(_.list[id]);
          map.addOverlay(_.list[id]);
        }
      }
    }
  }
}


_.em = {  //editMarker
  form: function(id,clr,latlng){
    var malt = new Array;
    if(_.$('tglMarkerCB').checked){
      malt.push('マーカー非表示にチェックを外しました。');
      _.tglMarker(false); _.$('tglMarkerCB').checked = false;
    }
    if(_.cookie.get('map')){
      var c = _.cookie.get('map').split('*');
      if(_.$('mapProCB').checked){
        malt.push('プロモードを終了しました。');
        _.mapPro.chg(false);
        _.$('mapProCB').checked = false;
        var mchk = 1;
      }
      if(c[5]){
        malt.push('抽出状態をクリアしました。');
        _.cookie.grp('map','',5);
        _.$('iconSlt').value = '';
        _.$('iconSlt').className = '';
        var mchk = 1;
      }
      if(c[7]){
        malt.push('タグ抽出をクリアしました。');
        _.cookie.grp('map','',7);
        _.mapSideReload(); _.$('msg').innerHTML = '';
        var mchk = 1;
      }
      if(c[10]){
        malt.push('ヒトデ抽出をクリアしました。');
        _.cookie.grp('map','',10);
        if(_.$('mapstarBtn')) _.$('mapstarBtn').className = 'starfish_g btn';
        var mchk = 1;
      }
      if(mchk) _.parse_marker();
    }
    if(malt.length > 0){
      alert('重複マッピング予防の為、\n' + malt.join('\n'));
    }
    
    if(!id || clr) _.tmpf = new Array;
    _.dm.remove();
    if(!latlng){
      if(id){
        var latlng = _.list[id].getPoint();
        map.removeOverlay(_.list[id]);
      }else{
        var latlng = (_.sv.marker) ? _.sv.marker.getPoint() :  map.getCenter();
      }
    }
    _.d_marker = _.dm.create(latlng);
    map.addOverlay(_.d_marker);
    if(id) _.d_marker.id = id;
    _.iw.m(_.d_marker,'form');
    
    GEvent.addListener(map.getInfoWindow(),'closeclick',function(){
      _.dm.remove();
    });
    
    GEvent.addListener(_.d_marker,'dragstart',function(){
      _.iw.tmp();
      map.closeInfoWindow();
    });
    
    GEvent.addListener(_.d_marker,'dragend',function(){
      _.iw.m(_.d_marker,'form');
    });
  },
  
  sd: function(id){
    var f = document.mfrm;
    if(!f.lat.value || !f.lng.value){
      alert('座標がうまく取得できてないようです。アイコンをちょいと動かしてみて下さい。');
      return;
    }
    _.mfm.reset_all(f);
    _.post('map|edit','mfrm','iw_disp',id,'',this.end);
    _.tmpf = new Array();
  },
  
  end: function(){
    //return; //d
    var point = _.d_marker.getPoint();
    var id = $('#new_id').val();
    var iconN = _.$('new_icon').value;
    marker = _.mk.create(id,point,iconN);
    map.addOverlay(marker);
    _.iw.m(marker,'|m');
    _.list[id] = marker;
    map.removeOverlay(_.d_marker);
  },
  
  del: function(id){
    if(id){
      if(!(re = prompt('マーカーを削除します。\n削除理由(必須)を簡単に書いて下さい。200文字をを超えると省略されます。',''))) return;
      _.get('map|edit',{id:id,opt:'del',re:re.substring(0,300)},null,function(json){
        if(json.msg){
          alert(json.msg);
        }else{
          if(_.list[id] && _.$('iw')){
            map.removeOverlay(_.list[id]);
            _.list[id] = undefined;
            alert('削除完了!');
          }else{
            location.href = _.BP + 'del/' + id + '?new';
          }
        }
      },'json');
    }
  },
  
  icon: function(v){
    var path = _.TP + 'marker/' + v + '-marker.png';
    if(_.$('icon')){
      var isMSIE = /*@cc_on!@*/false;
      if(isMSIE){
        _.$('icon').style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + path + ', sizingMethod=\'scale\')';
      }else{
        _.$('icon').src = path;
      }
      document.mfrm.icon.value = v;
    }
    $('#fd').fadeOut(500);
    _.tglSlt(1);
  }
  
}


_.iw = {
  HTML: null,
  m: function(marker,mode){
    map.closeInfoWindow();
    if(!marker.id && this.HTML){
      marker.openInfoWindowHtml(this.HTML);
      _.iw.fset(document.mfrm,marker);
      return;
    }
    var q = {type:'map|iw'};
    if(marker.id) q['id'] = marker.id;
    if(mode) q['mode'] = mode;
    if(typeof(mapExHeight) == 'function') mapExHeight();
    var url = _.BP + 'ajax?' + _.query(q);
    GDownloadUrl(url, function(data){
      if(!marker.id) _.iw.HTML = data;
      marker.openInfoWindowHtml(data);
      if(mode == 'form'){
        var int = setInterval(function(){
          var f = document.mfrm;
          if(f){
            _.iw.fset(f,marker);
            clearInterval(int);
          }
        },200);
      }
    });
  },
  
  fset: function(f,marker){
    var mp = marker.getPoint();
    f.lat.value = mp.y;
    f.lng.value = mp.x;
    _.iw.tmp(1);
    _.iw.f();
    _.mfm.reset_all(f,1);
    if(!marker.id) _.addr.regeocode(mp,'iw');
  },
  
  s: function(id,mode){
    if(_.list[id]){
      if(mode == 'list'){
        map.panTo(_.list[id].getPoint());
      }else{
        this.m(_.list[id],mode);
      }
      return;
    }
    var file = _.BP + 'ajax?type=map|bounds&mode=marker&id=' + id;
    GDownloadUrl(file, function(data){
      var xml = GXml.parse(data);
      var m = xml.documentElement.getElementsByTagName('marker');
      var lat =  parseFloat(m[0].getAttribute('lat'));
      var lng =  parseFloat(m[0].getAttribute('lng'));
      var iconN = m[0].getAttribute('icon');
      var point = new GLatLng(lat,lng);
      var marker = _.mk.create(id,point,iconN,mode);
      map.addOverlay(marker);
      _.list[id] = marker;
      marker.id = id;
      if(mode == 'list'){
        map.panTo(point);
      }else{
        _.iw.m(marker,mode);
      }
    });
  },
  
  f: function(){
    var f = document.mfrm;
    if(!f) return;
    if(f.zoom) f.zoom.value = map.getZoom();
    if(f.maptype) f.maptype.value = _.getMapType();
  },
  
  tmp: function(opt){
    if(opt == 2){
      _.tmpf = new Array;
      return;
    }
    var f = document.mfrm;
    if(!f) return;
    var n = ['title','body','tag','num','unclear','icon','mem'];
    for(key in n){
      var el = f.elements[n[key]];
      if(el){
        if(!opt){
          if(el.type == 'checkbox'){
            _.tmpf[key] = (el.checked) ? 1 : '';
          }else if(el[0] && el[0].type == 'radio'){
            for(i=0; i < el.length; i++){
              if(el[i].checked) _.tmpf[key] = el[i].value;
            }
          }else{
            _.tmpf[key] = el.value;
          }
        }else if(_.tmpf.length > 0){
          if(el.type == 'checkbox'){
            el.checked = (_.tmpf[key] == 1) ? true : false;
          }else if(el[0] && el[0].type == 'radio'){
            for(i=0; i < el.length; i++){
              if(el[i].value == _.tmpf[key]){
                el[i].checked = true;
                if(_.TEMP == 'post' && i > 3){
                  _.$('mainRadio').style.display ='none';
                  _.$('subRadio').style.display ='block';
                }
              }
            }
          }else{
            el.value = _.tmpf[key];
          }
          var clr = 1;
        }
      }
    }
    if(clr) _.tmpf = new Array;
  },
  
  ref: function(id){
    $('#fd').fadeOut(500);
    _.iw.s(id,'|m');
  }

}


_.mfm = {
  arr: function(){
    var a = new Array;
    a['title'] = 'ﾀｲﾄﾙ(必須)';
    a['body'] = 'ﾒﾓ';
    a['tag'] = 'ﾀｸﾞ(複数登録はｽﾍﾟｰｽ区切り)';
    a['city'] = '市区町村';
    a['town'] = '以下';
    return a;
  },
  
  reset: function(self,opt){
    var a = this.arr();
    _.fm.reset(self,a,opt);
  },
  
  reset_all: function(f,opt){
    if(!f){
      if(document.mfrm){f = document.mfrm;
      }else if(document.addrFrm){f = document.addrFrm;
      }else{return}
      opt = 1;
    }
    var a = _.mfm.arr();
    for(i=0; i < f.elements.length; i++){
      if(a[f.elements[i].name]){
        _.mfm.reset(f.elements[i],opt);
      }
    }
  }
}

_.addr = {
  regeocode: function(point,opt){
    if(!point) return;
    if(!opt) opt = '';
    _.get('map|regeocode',{lat:point.y,lng:point.x,opt:opt},{ds:'iwAddr',ld:'iw_loader'});
  },
  
  set: function(){
    if(!_.$('newAddr')) return;
    var a = _.$('newAddr').value.split('|')
    var f = document.addrFrm;
    if(a[0]) f.pref.value = a[0];
    if(a[1]) f.city.value = a[1];
    if(a[2]) f.town.value = a[2];
    _.mfm.reset_all(f,1);
  }
}

