function main(rmap, vlat, vlng, vdefview, pvcount){
	g_reload = true;
	g_http = GXmlHttp.create();
	if(GBrowserIsCompatible() && g_http){
		//google map object.
		g_mapcv = new clsmap(rmap,vlat,vlng);
		g_mapcv.map.setCenter(new GLatLng(vlat, vlng), g_mapcv.zoomlevel);
		GEvent.addListener(g_mapcv.map, 'dragstart', function(){g_reload = true;});
		//GEvent.addListener(g_mapcv.map, 'movestart', mapMovestart);
		GEvent.addListener(g_mapcv.map, 'moveend', mapMoveend);
		GEvent.addListener(g_mapcv.map, 'zoomend', mapZoomend);
		GEvent.addListener(g_mapcv.map, 'click', mapClick);

		g_mapcv.objlat = document.getElementById('lat');
		g_mapcv.objlng = document.getElementById('lng');
		g_mapcv.defview = vdefview;
		g_mapcv.pvcount = pvcount;

		//icon
		g_icon = new clsmapicon(g_mapcv);
		mapZoomend();
	}
}

function mapZoomend(){
	var oerrzoom = document.getElementById('txterrzoom');
	g_reload = true;
	mapMoveend();

	g_mapcv.zoomlevel = g_mapcv.map.getZoom();
	if(oerrzoom){
		if(g_mapcv.zoomlevel <= 3){
			oerrzoom.style.display = 'block';
		}else{
			oerrzoom.style.display = 'none';
		}
	}
}

function mapMoveend(){
	var url = '';
	var nelat = g_mapcv.map.getBounds().getNorthEast().lat();
	var nelng = g_mapcv.map.getBounds().getNorthEast().lng();
	var swlat = g_mapcv.map.getBounds().getSouthWest().lat();
	var swlng = g_mapcv.map.getBounds().getSouthWest().lng();
	var publicflag = '';

	url = '/echo/drink.asp?v1=' + nelat + '&v2=' + nelng + '&v3=' + swlat + '&v4=' + swlng + '&v5=' + publicflag
	if(g_mapcv.pvcount === true)url = url + '&v6=1'

	g_mapcv.currentlat = 0;
	g_mapcv.currentlng = 0;
	g_mapcv.zoomlevel = g_mapcv.map.getZoom();
	g_http.open('GET', url, true);
	g_http.onreadystatechange = dspdrink;
	g_http.send(null);
}

function mapClick(vmarker, vbounds){
	var point;
	var latlng;

	if(!g_mapcv.flgedit)return;
	if(g_mapcv.currentlat > 0 || g_mapcv.currentlng > 0)return;

	g_mapcv.currentlat = vbounds.lat();
	g_mapcv.currentlng = vbounds.lng();

	point = new GPoint(vbounds.lng(), vbounds.lat());
	if(g_mapcv.objlat)g_mapcv.objlat.value = vbounds.lat();
	if(g_mapcv.objlng)g_mapcv.objlng.value = vbounds.lng();

	g_icon.icon.image = '/img/map/new.png';
	g_mapcv.map.addOverlay(g_icon.createmarker(point, g_icon, '',true));
}

