// 地図制御クラス.
function MapImage()
{
	//全ての起点(全縮尺に必ず画像が存在する為).
	var mapConstSx;
	var mapConstSy;
	var mapBaseSx = sx = mapConstSx;
	var mapBaseSy = sy = mapConstSy;

	// タイル数(6x6).
	var TileCount = 6;
	
	// ドラックフラグ.
	this.DragFlag = false;
	
	// ドラック処理関連.
	// ドラック開始位置 オフセットを引いた値(pixcel).
	var dragBaseMouseX = 0;		
	var dragBaseMouseY = 0;

	// メモ制御用変数.
	// メモマウス座標(pixcel).
	var memoMouseX = 0;
	var memoMouseY = 0;
	// メモドラック開始位置(pixcel).
	var memoBaseX = 0;
	var memoBaseY = 0;
	
	// オフセット(pixcel).
	var offsetX=0;
	var offsetY=0;

	// スケール(例 : 1000).
	this.Scale = 0;

	// スケールサイズ 画像一枚当たりの一辺の長さ(ｍ).
	this.mapM = 0;

	// 1ピクセル当たりの移動距離を求める(ｍ).
	this.PixM = 0;
	
	// タイル画像1枚辺りの画像幅(Pixcel).
	this.PixelWidth = 0;

	// 地図座標	(初期表示 左下)(m).
	this.MapX =mapBaseSx;
	this.MapY =mapBaseSy;

	// 地図の座標に対するマウスの座標(Pixcel).
	this.MapMouseX = 0;
	this.MapMouseY = 0;
	
	// 地図の中心座標(Pixcel).
	this.MapCenterX = 0;
	this.MapCenterY  = 0;
	
	// 属性表示制御.
	this.ShowAttribute = false;
	
	// 背景図を入れるオブジェクトの名称.
	var names = new Array();
	// 背景図のURL.
	var urls = new Array();

	// 処理モード.
	this.MapMode = "";
	
	// ドラック開始位置.
	var dragStartPosX = -1;
	var dragStartPosY = -1;

	// 拡大、縮小のアニメーションフレーム数.
	var Smoothness = 10;
	// 現在のアニメーションカウント数.
	var SmoothnessCount = 0;
	
	// アニメーション時の変数領域
	var zoomMapDataWidth = 0;
	var zoomMapDataHeight = 0;
	var zoomMapDataTop = 0;
	var zoomMapDataLeft = 0;
	var zoomMapWidth = 0;
	var zoomMapHeight = 0;
	var zoomOffsetX = 0;
	var zoomOffsetY = 0;
	
	// 読み込み処理キャンセル用変数.
	var expectTimerID = 0;
	var readFuture = false;
	
	// マウスクリックフラグ(左右).
	var rightClick = false;
	var leftClick = false;
	
	// 強調表示座標(Pixcel).
	var emphasisX =0;
	var emphasisY =0;	
	
	this.kmlX = 0;
	this.kmlY = 0;
	
	
	
	// 初期化.
	this.Initialize = function()
	{
		currentDocument.ScreenResize();
				
		document.getElementById("dragImage").style.visibility = "visible";
		document.getElementById("leftLine").style.visibility = "visible";
		document.getElementById("rightLine").style.visibility = "visible";
		
		document.getElementById("KeyMapWin").style.top = documentHeader;
		keyMap.Show();
	
		var mapdata = document.getElementById("mapData");
		var mapdataDummy  = document.getElementById("mapDataDummy");
		
		mapdata.innerHTML = "";
		mapdataDummy.innerHTML = "";
		mapImage.PixelWidth = geoAccess.MapScaleSetting.PixelWidth;
		for (y=TileCount-1; y>=0; y--)
		{
			for (x=0; x<TileCount; x++)
			{
				mapdata.innerHTML += '<img src="MapForm/img/trans.gif" width="' + mapImage.PixelWidth + '" height="' + mapImage.PixelWidth + '" name="map'+x+y+'" border=0 onerror="mapImage.ShowNoImage('+x+','+y+');">';
				mapdataDummy.innerHTML += '<img  width="' + mapImage.PixelWidth + '" height="' + mapImage.PixelWidth + '" name="mapdummy'+x+y+'" border=0">';
			}
			mapdata.innerHTML += "<br>";
			mapdataDummy.innerHTML += "<br>";
		}
		
		document.images["mapdummy3"+(TileCount-1)].onload = function (){
	      expectTimerID = 0;
			}
		
		this.MapMouseX = -mapImage.PixelWidth;
		this.MapMouseY = -mapImage.PixelWidth + mapImage.PixelWidth * (TileCount - 1);
		
		mapConstSx = geoAccess.MaxX;
		mapConstSy = geoAccess.MaxY;
		
		mapBaseSx = sx = mapConstSx;
		mapBaseSy = sy = mapConstSy;
		
		// メモ読み込み.
		memoController.Load();
		
		if(!document.all)
		{
			document.getElementById("MeasureFigureArea").innerHTML = "<canvas id = 'MeasureFigureCanvas' width='800' height='800' style='LEFT: 0px; VISIBILITY: visible; POSITION: absolute; TOP: 0px'></canvas>";
		}
		
		// ブラウザチェック.
		mapImage.CheckBrowser();
	}
	
	//マウスの位置に地図を移動する.
	this.MoveCenterByMouse = function()
	{
		
		//中心座標の算定.
		this.MapX = sx + mapImage.PixM * (currentDocument.ActiveMouseX + mapImage.PixelWidth -parseInt(document.getElementById("mapData").style.left));
		this.MapY = sy + mapImage.PixM * (parseInt(document.getElementById("mapData").style.top) + mapImage.PixelWidth * (TileCount - 1) -(currentDocument.ActiveMouseY) - mapImage.PixelWidth);
	
		viewController.MoveCenter(this.MapX, this.MapY);
		return false;
	}
	
	//座標計算.
	this.GetMapPos = function()
	{
		if (mapImage.PixelWidth == 0) return false;
	
		this.MapX = sx + mapImage.PixM * (currentDocument.ActiveMouseX + mapImage.PixelWidth -parseInt(document.getElementById("mapData").style.left));
		this.MapY = sy + mapImage.PixM * (parseInt(document.getElementById("mapData").style.top) + parseInt(document.getElementById("map").style.top) + mapImage.PixelWidth * (TileCount - 1) -(currentDocument.ActiveMouseY) - mapImage.PixelWidth);
		
		mapImage.MapMouseX = currentDocument.activeMouseX;
		mapImage.MapMouseY = currentDocument.activeMouseY;
		
		document.getElementById("MapX").innerHTML = parseInt(this.MapX);
		document.getElementById("MapY").innerHTML = parseInt(this.MapY);
		document.getElementById("ActiveScale").innerHTML ="1/" + parseInt(mapImage.Scale);
		
		return false;
	}

	// 地図座標X(m)→画面上の座標(pixcel)変換.
	// x					座標(m)
	this.GetMapPosXToPixcelPosX = function(x)
	{
		return parseInt(document.getElementById("mapData").style.left)- mapImage.PixelWidth + (x - sx) / mapImage.PixM;
	}

	// 地図座標Y(m)→画面上の座標(pixcel)変換.
	// y					座標(m)
	this.GetMapPosYToPixcelPosY = function(y)
	{
		return parseInt(document.getElementById("mapData").style.top)-mapImage.PixelWidth + mapImage.PixelWidth * (TileCount - 1) -(y - sy) / mapImage.PixM;
	}

	//現在表示されている地図の中心(赤点)の座標を取得する.
	this.GetMapCenter = function()
	{
		var geoMap = document.getElementById("geoMap");
		
		if (geoMap != null)
		{
			//中心座標の算定.
			if (mapImage.PixelWidth == 0) return;

			geoMapCenterX = parseInt(geoMap.style.left) + parseInt(geoMap.style.width) / 2;
			geoMapCenterY = parseInt(geoMap.style.top) + parseInt(geoMap.style.height) / 2;
		
			mapImage.MapCenterX = sx + mapImage.PixM * (geoMapCenterX + mapImage.PixelWidth -parseInt(document.getElementById("mapData").style.left));
			mapImage.MapCenterY  = sy + mapImage.PixM * (parseInt(document.getElementById("mapData").style.top) + mapImage.PixelWidth * (TileCount - 1) -(geoMapCenterY) - mapImage.PixelWidth);
			
			document.getElementById("MapCenterX").innerHTML = parseInt(mapImage.MapCenterX);
			document.getElementById("MapCenterY").innerHTML = parseInt(mapImage.MapCenterY);
		}
		
		return false;
	}
	
	// 地図クリックイベント.
	this.Click = function(e)
	{
		leftClick = false;
	
		switch(this.MapMode)
		{
			// 計測モード.
			case common.MODEMEASURE:
				if(document.all)
				{
					if (event.button == 1) 
					{
						leftClick = true;
					}
				}
				else if(document.getElementById)
				{
					if (e.which == 1) 
					{
						leftClick = true;
					}
				}
			
				if (leftClick)
				{
					measureFigure.onClick();
				}
				
				break;
			default:
				break;	
		}
		return false;
	}
	
	// ダブルクリックイベント.
	this.DoubleClick = function()
	{
		switch(this.MapMode)
		{
			// 計測モード.
			case common.MODEMEASURE:
				measureFigure.Commit();
				break;
			default:
				if (!toolTip.isDisplay)
				{
					//中心座標の算定.
					this.MapX = sx + mapImage.PixM * (currentDocument.ActiveMouseX + mapImage.PixelWidth -parseInt(document.getElementById("mapData").style.left));
					this.MapY = sy + mapImage.PixM * (parseInt(document.getElementById("mapData").style.top) + parseInt(document.getElementById("map").style.top) + mapImage.PixelWidth * (TileCount - 1) -(currentDocument.ActiveMouseY) - mapImage.PixelWidth);
					viewController.MoveCenterZoom(this.MapX, this.MapY);
				}
				break;	
		}
		return false;
	}

  // マウス移動イベント.
	this.MouseMove = function(e)
	{
		if (!this.DragFlag && dragStartPosX >= 0 && dragStartPosY >= 0)
		{
			if (leftClick && (dragStartPosX - currentDocument.ActiveMouseX > 3
					|| dragStartPosX - currentDocument.ActiveMouseX < -3
					|| dragStartPosY - currentDocument.ActiveMouseY > 3
					|| dragStartPosY - currentDocument.ActiveMouseY < -3))
			{
			  // ドラック開始.
				this.DragStart();
				return false;
			}
		}
		
		if (this.DragFlag)
		{
			// ドラック処理.
			this.Drag();
			return false;
		}
		
		if (this.MapMode == common.MODEMEASURE && !this.DragFlag)
		{
			// 計測中の絵を再描画.
			measureFigure.onMouseMove();
			return false;
		}
				
		return false;
	}
	
	// マウスアップイベント.
	this.MouseUp = function(e)
	{
		rightClick = false;
		leftClick = false;
		
		dragStartPosX = -1;
		dragStartPosY = -1;
		if (this.DragFlag)	
		{
			// ドラック終了.
			this.DragEnd();
			return;
		}
		
		// クリックイベント.
		this.Click(e);
	}

	// マウスダウンイベント.	
	this.MouseDown = function(e)
	{
		rightClick = false;
		leftClick = false;
		
		dragStartPosX = currentDocument.ActiveMouseX;
		dragStartPosY = currentDocument.ActiveMouseY;
		
		document.getElementById("contextmenuImage").style.top = 0;
		document.getElementById("contextmenuImage").style.left = 0;
		
		var menuframe = common.GetChildNode(document.getElementById("contextmenu"), "memuFrame");
		document.getElementById("memuFrame").style.top = 0;
		document.getElementById("memuFrame").style.left = 20;
		
		// ブラウザ毎のボタン制御.
		if(document.all)
		{
			if (event.button == 1) 
			{
				leftClick = true;
			}
				
			if (event.button == 2 || event.button == 3 ) 
			{
				rightClick = true;
			}
		}
		else if(document.getElementById)
		{
			if (e.which == 1) 
			{
				leftClick = true;
			}
				
			if (e.which == 3 )
			{
				rightClick = true;
			}
		}
		
		// コンテキストメニュー表示非表示制御.
		usermenu = document.getElementById("contextmenu");
		if (rightClick)
		{
			usermenu.style.visibility = "visible";
			
			mailer.CreateMailto(mapImage.CreateURL());
			mailer.CreateMailFormUrl(mapImage.CreateURL());
			mapImage.CreateMemohref();
			
			// 携帯アドレス作成
			geoAccess.GetKeitaiLink(this.MapX, this.MapY);
			
			// KML作成時用
			this.kmlX = this.MapX;
			this.kmlY = this.MapY;
			
			if (parseInt(currentDocument.ActiveMouseY) + parseInt(usermenu.offsetHeight) > parseInt(document.body.clientHeight))
			{
				usermenu.style.top = parseInt(currentDocument.ActiveMouseY) - parseInt(usermenu.offsetHeight);
				document.getElementById("contextmenuImage").style.top = 55;
				document.getElementById("contextmenuImage").style.left = 0;
				
				document.getElementById("memuFrame").style.top = 0;
				document.getElementById("memuFrame").style.left = 20;
			}
			else
			{
				usermenu.style.top = currentDocument.ActiveMouseY - 20;
			}
			if (parseInt(currentDocument.ActiveMouseX) + parseInt(usermenu.offsetWidth) > parseInt(document.body.clientWidth))
			{
				usermenu.style.left = parseInt(currentDocument.ActiveMouseX) - parseInt(usermenu.offsetWidth) + 20;
				document.getElementById("contextmenuImage").style.top = 0;
				document.getElementById("contextmenuImage").style.left = 170;
				
				document.getElementById("memuFrame").style.top = 0;
				document.getElementById("memuFrame").style.left = 0;
			}
			else
			{
				usermenu.style.left = currentDocument.ActiveMouseX;
			}
			if (parseInt(currentDocument.ActiveMouseY) + parseInt(usermenu.offsetHeight) > parseInt(document.body.clientHeight)
				&& parseInt(currentDocument.ActiveMouseX) + parseInt(usermenu.offsetWidth) > parseInt(document.body.clientWidth))
			{
				usermenu.style.top = parseInt(currentDocument.ActiveMouseY) - parseInt(usermenu.offsetHeight);
				usermenu.style.left = parseInt(currentDocument.ActiveMouseX) - parseInt(usermenu.offsetWidth) + 20;
				document.getElementById("contextmenuImage").style.top = 55;
				document.getElementById("contextmenuImage").style.left = 170;
				
				document.getElementById("memuFrame").style.top = 0;
				document.getElementById("memuFrame").style.left = 0;
			}
		}
		else
		{
			usermenu.style.visibility = "hidden";
		}
	}
	
	// ドラック開始.
	this.DragStart = function()
	{
		mapImage.ShowAttribute = false;
	
		//既存のツールチップを破棄.
		toolTip.UnShow();
		
		// 読み込み停止.
		readFuture = true;
//		clearTimeout(expectTimerID);

/*
		if (expectTimerID == -1)
		{

			// ソース読み込み解除
			for (y=0; y<TileCount; y++)
			{
				for (x=0; x<TileCount; x++)
				{
					document.images["mapdummy"+x+y].src  = "";
				}
			}
		}
*/		
		
		this.DragFlag = true;
		// ScreenMouseUpから移動　開始時に再設定しないと位置づれを起こす.
		mapBaseSx = sx;
		mapBaseSy = sy;

		dragBaseMouseX = currentDocument.ActiveMouseX - offsetX;
		dragBaseMouseY = currentDocument.ActiveMouseY - offsetY;
	
		memoMouseX = currentDocument.ActiveMouseX;
		memoMouseY = currentDocument.ActiveMouseY;
		memoBaseX = parseInt(document.getElementById("MemoArea").style.left);
		memoBaseY = parseInt(document.getElementById("MemoArea").style.top);
		
		emphasisX = parseInt(document.getElementById("jumpActive").style.left);
		emphasisY = parseInt(document.getElementById("jumpActive").style.top);
		
		geoAccess.AbortRequest();
		document.getElementById("geoMap").style.visibility = "hidden";
//		document.getElementById("geoMap").src = "";
		document.getElementById("geoMap").title = "cancel";
		//クリッカブルマップを破棄.
//		document.getElementById("featuresMap").innerHTML = "";
		
		// 計測モードなら計測中の画像を非表示にする.
		if (this.MapMode == common.MODEMEASURE)
		{
			document.getElementById("MeasureFigureArea").style.visibility = "hidden";
			document.getElementById("MeasureResult").style.visibility = "hidden";
			
			if(!document.all)
			{
				var canvas = document.getElementById('MeasureFigureCanvas').getContext('2d');
				canvas.clearRect(0,0,800,800);
			}
		}
		
		// ドラック中はマウスカーソルを手に変更.
		document.getElementById("dragImage").style.cursor ="url(MapForm/img/AfterPanHand.cur), move";
		return false;
	}
	
	// ドラック終了.
	this.DragEnd = function()
	{
		// 地図表示位置移動.
		this.GetMapCenter();
		geoAccess.MoveCenter(this.MapCenterX, this.MapCenterY);
		this.DragFlag = false;
		
		// マウスカーソルを元に戻す.
		document.getElementById("dragImage").style.cursor ="url(MapForm/img/BeforePanHand.cur), move";
		
		// 計測モード判断.
		if (this.MapMode == common.MODEMEASURE)
		{
		  // 再描画ならびに地図表示.
			measureFigure.Redraw();
			document.getElementById("MeasureFigureArea").style.visibility = "visible";
			document.getElementById("MeasureResult").style.visibility = "visible";
		}
		
		// キーマップ中心表示.
		keyMap.ShowCenter(parseInt(mapImage.MapCenterX), parseInt(mapImage.MapCenterY));
		
		document.getElementById("dragDiv").style.zindex = 15;
		
		readFuture = false;
		
		return false;
	}

	
	// ドラック中処理.
	this.Drag =function()
	{
		var x = dragBaseMouseX - currentDocument.ActiveMouseX;
		var y = dragBaseMouseY - currentDocument.ActiveMouseY;

	　// メモ用の画像をずらす.
		document.getElementById("MemoArea").style.left = memoBaseX - (memoMouseX - currentDocument.ActiveMouseX);
		document.getElementById("MemoArea").style.top = memoBaseY - (memoMouseY - currentDocument.ActiveMouseY);
		
		// 強調表示をずらす.
		document.getElementById("jumpActive").style.left = emphasisX - (memoMouseX - currentDocument.ActiveMouseX);
		document.getElementById("jumpActive").style.top = emphasisY - (memoMouseY - currentDocument.ActiveMouseY);
		
		// マウスカーソルを変更.
		document.getElementById("dragImage").style.cursor ="url(MapForm/img/AfterPanHand.cur), move";
		
		// 背景図再描画.
		mapImage.RedrawMap(x, y);
		return false;
	}

	// 地図の再描画の計算と再描画を行う
	// x					x座標(pixcel)
	// y					y座標(pixcel)
	this.RedrawMap = function(x, y)
	{
		var beforesx = sx;
		var beforesy = sy;
	
		// 地図表示位置を算出
		offsetX = -x % mapImage.PixelWidth;
		offsetY = -y % mapImage.PixelWidth;


		// 表示する地図の番号を算出
		if (((x + offsetX) / mapImage.PixelWidth) > 0)
		{
			sx = mapBaseSx + Math.floor((x + offsetX) / mapImage.PixelWidth)*mapImage.mapM;
		}
		else
		{
			sx = mapBaseSx + Math.ceil((x + offsetX) / mapImage.PixelWidth)*mapImage.mapM;
		}
		
		if (((y + offsetY) / mapImage.PixelWidth) > 0)
		{
			sy = mapBaseSy - Math.floor((y + offsetY) / mapImage.PixelWidth)*mapImage.mapM;
		}
		else
		{
			sy = mapBaseSy - Math.ceil((y + offsetY) / mapImage.PixelWidth)*mapImage.mapM;
		}
		
		
		if (beforesx != sx || beforesy !=sy)
		{
			mapImage.ViewMap();
		}
		screen.updateInterval = 1000;
		document.getElementById("mapData").style.left = offsetX;
		document.getElementById("mapData").style.top = offsetY;
		screen.updateInterval = 0;
		
		// 中心座標取得.
		mapImage.GetMapCenter();
		
		return false;
	}

  // 拡大処理.
	this.ZoomIn = function()
	{
		var newScale = this.Scale / 2;
		if (newScale >= geoAccess.ScaleMin)
		{
			viewController.ChangeScale(newScale);
		}
	}
	
	// 縮小処理.
	this.ZoomOut = function()
	{
		var newScale = this.Scale * 2;
		if (newScale <= geoAccess.ScaleMax)
		{
			viewController.ChangeScale(newScale);
		}
	}

　// スケール変更.
　// val						スケール.
	this.ChangeScale = function(val)
	{
		mapImage.ShowAttribute = false;
	
		// 自作コンテキストメニューは座標が変わった段階で非表示に.
		document.getElementById("contextmenu").style.visibility = "hidden";
		document.getElementById("MemoArea").style.visibility = "hidden";
	
		this.DragFlag = true;
		
		// 変更前のスケール.
		beforeScale = mapImage.Scale;
		// 新たなスケールを退避.
		mapImage.Scale = val;
		
		
		for(var i = 0; i < geoAccess.MapScaleSetting.ScaleList.length; i++)
		{
			if (geoAccess.MapScaleSetting.ScaleList[i].Scale == val)
			{
				mapImage.mapM = geoAccess.MapScaleSetting.ScaleList[i].Interval;
				mapImage.PixM = mapImage.mapM / mapImage.PixelWidth;
				break;
			}
		}
		
		SmoothnessCount = 0;
		magnification = beforeScale / mapImage.Scale;
		
		zoomMapDataWidth = parseInt(document.getElementById("mapData").style.width);
		zoomMapDataHeight = parseInt(document.getElementById("mapData").style.height);
		zoomMapDataTop = parseInt(document.getElementById("mapData").style.top);
	  zoomMapDataLeft = parseInt(document.getElementById("mapData").style.left);
		zoomMapWidth = parseInt(document.images["map00"].width);
		zoomMapHeight = parseInt(document.images["map00"].height);
		zoomOffsetX = offsetX;
		zoomOffsetY = offsetY;
		
		var xIndex = 0;
		var yIndex = 0;
		var startX = 0;
		var startY = 0;
		
		mapImage.NeighborhoodMouseOut();
		
		// 中心点を元に移動原点を取得.
		startX = mapImage.MapCenterX - mapImage.mapM * (TileCount / 2);
		startY = mapImage.MapCenterY - mapImage.mapM * (TileCount / 2);

		// 移動対象の地図番号を取得.
		xIndex = Math.floor((startX - mapConstSx) / mapImage.mapM);
		yIndex = Math.ceil((startY - mapConstSy) / mapImage.mapM);

		// 地図番号を元に地図座標を取得.
		sx = mapConstSx + (xIndex * mapImage.mapM);
		sy = mapConstSy + (yIndex * mapImage.mapM);

		// 差分を取得.
		offsetX = (sx - startX) / mapImage.PixM;
		offsetY = 200 - (sy - startY) / mapImage.PixM;
		
		// ズーム用の画像設定.
		mapImage.SetMapImage();
		document.getElementById("mapDataDummy").style.width = mapImage.PixelWidth*TileCount;
		document.getElementById("mapDataDummy").style.height = mapImage.PixelWidth*TileCount;
		document.getElementById("mapDataDummy").style.top = document.getElementById("mapData").style.top;
		document.getElementById("mapDataDummy").style.left = document.getElementById("mapData").style.left;
		
		document.getElementById("mapDataDummy").style.visibility = "visible";
		document.getElementById("mapData").style.visibility = "hidden";
		
		// 地図表示.
		mapImage.ViewMap();
		
		if (mapImage.MapMode == common.MODEMEASURE)
		{
			document.getElementById("MeasureFigureArea").style.visibility = "hidden";
			document.getElementById("MeasureResult").style.visibility = "hidden";
			if(!document.all && document.getElementById)
			{
				document.getElementById('MeasureFigureCanvas').style.visibility = "hidden";
			}
		}
			
		if(magnification > 1 )
		{
			// 拡大アニメーション.
			setTimeout("mapImage.ZoomInImage('" + magnification + "')", 100);
		}
		else if(magnification < 1 )
		{
		  // 縮小アニメーション.
			setTimeout("mapImage.ZoomOutImage('" + magnification + "')", 100);
		}
		
		// スケールバーの表示.
		mapImage.ShowScaleBar();
		
		this.DragFlag = false;
	}

	// 拡大アニメーション.
	// magnification			拡大率.
	this.ZoomInImage = function(magnification)
	{
		// 不用なものを非表示にする.
		mapImage.NeighborhoodMouseOut();
		mapImage.HiddenEmphasis();
		
		// アニメーションフレーム数に到達したか.
		if (SmoothnessCount >= Smoothness)
		{
			screen.updateInterval = 1000;
			document.getElementById("mapData").style.left = offsetX;
			document.getElementById("mapData").style.top = offsetY;
			
			for (y=0; y<TileCount; y++)
			{
				for (x=0; x<TileCount; x++)
				{
					document.images["map"+x+y].width =mapImage.PixelWidth;
					document.images["map"+x+y].height =mapImage.PixelWidth;
				}
			}
			document.getElementById("mapData").style.width = mapImage.PixelWidth*TileCount;
			document.getElementById("mapData").style.height = mapImage.PixelWidth*TileCount;
			
			screen.updateInterval = 0;

			// メモ再表示.
			mapImage.GetMapCenter();
			memoController.ShowMemo();
			document.getElementById("MemoArea").style.visibility = "visible";
			
			if (this.MapMode == common.MODEMEASURE)
			{
				// 計測結果の表示.
				document.getElementById("MeasureFigureArea").style.visibility = "visible";
				document.getElementById("MeasureResult").style.visibility = "visible";
				if(!document.all && document.getElementById)
				{
					document.getElementById('MeasureFigureCanvas').style.visibility = "visible";
				}
				measureFigure.Redraw();
			}
			
			// キーマップ中心表示.
			keyMap.ShowCenter(mapImage.MapCenterX, mapImage.MapCenterY);
			
			// 中心移動.
			mapImage.GetMapCenter();
			viewController.MoveCenter(mapImage.MapCenterX, mapImage.MapCenterY);
			
			document.getElementById("mapData").style.visibility = "visible";
			document.getElementById("mapDataDummy").style.visibility = "hidden";
			
			// ここでスケールボタンの設定をしないと、直後にマウス移動された場合正しく表示されない
			geoAccess.SetScaleButtonImage(this.Scale);
			
			return;
		}
		SmoothnessCount++;
		
		screen.updateInterval = 1000;
		
		zoomMapDataLeft = zoomMapDataLeft - ((mapImage.PixelWidth / Smoothness * TileCount)*(magnification - 1)/2) + (zoomOffsetX / Smoothness)*(magnification - 1);
		zoomMapDataTop = zoomMapDataTop - ((mapImage.PixelWidth / Smoothness * TileCount)*(magnification - 1)/2) + (zoomOffsetY / Smoothness)*(magnification - 1);
		zoomMapDataWidth += (mapImage.PixelWidth / Smoothness * TileCount)*(magnification - 1);
		zoomMapDataHeight += (mapImage.PixelWidth / Smoothness * TileCount)*(magnification - 1);
		zoomMapWidth += (mapImage.PixelWidth / Smoothness)*(magnification - 1);
		zoomMapHeight += (mapImage.PixelWidth / Smoothness)*(magnification - 1);
		
		// アニメーション地図の移動.
		document.getElementById("mapDataDummy").style.left = zoomMapDataLeft;
		document.getElementById("mapDataDummy").style.top = zoomMapDataTop;
		document.getElementById("mapDataDummy").style.width = zoomMapDataWidth;
		document.getElementById("mapDataDummy").style.height = zoomMapDataHeight;

		// アニメーション処理.
		for (y=0; y<TileCount; y++)
		{
			for (x=0; x<TileCount; x++)
			{
				document.images["mapdummy"+x+y].width = zoomMapWidth;
				document.images["mapdummy"+x+y].height = zoomMapHeight;
			}
		}
		screen.updateInterval = 0;
	
		setTimeout("mapImage.ZoomInImage('" + magnification + "')", 10);
	}
	
	
	// 縮小アニメーション.
	// magnification				縮小率.
	this.ZoomOutImage = function(magnification)
	{
	  // 不用なものを非表示にする.
		mapImage.NeighborhoodMouseOut();
		mapImage.HiddenEmphasis();
		
		// アニメーションフレーム数に到達したか.
		if (SmoothnessCount >= Smoothness)
		{
			screen.updateInterval = 1000;
			document.getElementById("mapData").style.left = offsetX;
			document.getElementById("mapData").style.top = offsetY;
			
			for (y=0; y<TileCount; y++)
			{
				for (x=0; x<TileCount; x++)
				{
					document.images["map"+x+y].width =mapImage.PixelWidth;
					document.images["map"+x+y].height =mapImage.PixelWidth;
				}
			}
			document.getElementById("mapData").style.width = mapImage.PixelWidth*TileCount;
			document.getElementById("mapData").style.height = mapImage.PixelWidth*TileCount;
			
			screen.updateInterval = 0;

			// メモ再表示.
			mapImage.GetMapCenter();
			memoController.ShowMemo();
			document.getElementById("MemoArea").style.visibility = "visible";
			
			if (this.MapMode == common.MODEMEASURE)
			{
				// 計測結果の表示.
				document.getElementById("MeasureFigureArea").style.visibility = "visible";
				document.getElementById("MeasureResult").style.visibility = "visible";
				if(!document.all && document.getElementById)
				{
					document.getElementById('MeasureFigureCanvas').style.visibility = "visible";
				}
				measureFigure.Redraw();
			}
			
			// キーマップ中心表示.
			keyMap.ShowCenter(mapImage.MapCenterX, mapImage.MapCenterY);
			
			// 中心移動.
			mapImage.GetMapCenter();
			viewController.MoveCenter(mapImage.MapCenterX, mapImage.MapCenterY);
			
			document.getElementById("mapData").style.visibility = "visible";
			document.getElementById("mapDataDummy").style.visibility = "hidden";
			
			// ここでスケールボタンの設定をしないと、直後にマウス移動された場合正しく表示されない
			geoAccess.SetScaleButtonImage(this.Scale);
			
			return;
		}
		SmoothnessCount++;
		
		screen.updateInterval = 1000;
		
	  zoomMapDataLeft += (mapImage.PixelWidth * (1-magnification) / Smoothness * TileCount) / 2 - (zoomOffsetX / Smoothness)*((1-magnification));
		zoomMapDataTop += (mapImage.PixelWidth * (1-magnification) / Smoothness * TileCount) / 2 - (zoomOffsetY / Smoothness)*((1-magnification));
		zoomMapDataWidth -= (mapImage.PixelWidth * (1-magnification) / Smoothness);
		zoomMapDataHeight -= (mapImage.PixelWidth * (1-magnification) / Smoothness);
		zoomMapWidth -= (mapImage.PixelWidth * (1-magnification) / Smoothness);
		zoomMapHeight -= (mapImage.PixelWidth * (1-magnification) / Smoothness);

		// アニメーション地図の移動.
		document.getElementById("mapDataDummy").style.left = zoomMapDataLeft;
		document.getElementById("mapDataDummy").style.top = zoomMapDataTop;
		document.getElementById("mapDataDummy").style.width = zoomMapDataWidth;
		document.getElementById("mapDataDummy").style.height = zoomMapDataHeight;
		
		// アニメーション処理.
		for (y=0; y<TileCount; y++)
		{
			for (x=0; x<TileCount; x++)
			{
				document.images["mapdummy"+x+y].width  = zoomMapWidth;
				document.images["mapdummy"+x+y].height = zoomMapHeight;
			}
		}
		screen.updateInterval = 0;
	
		setTimeout("mapImage.ZoomOutImage('" + magnification + "')", 10);
	}

	//　中心移動.
	// x					x座標(m).
	// y					y座標(m).
	this.MoveCenter = function(x, y)
	{
		var xIndex = 0;
		var yIndex = 0;
		var startX = 0;
		var startY = 0;
		
		mapImage.ShowAttribute = false;
		
		//既存のツールチップを破棄.
		toolTip.UnShow();
		
		// 自作コンテキストメニューは座標が変わった段階で非表示に.
		document.getElementById("contextmenu").style.visibility = "hidden";
		
		mapImage.NeighborhoodMouseOut();
		
		// 中心点を元に移動原点を取得 .
		startX = x - mapImage.mapM * (TileCount / 2);
		startY = y - mapImage.mapM * (TileCount / 2);

		// 移動対象の地図番号を取得.
		xIndex = Math.floor((startX - mapConstSx) / mapImage.mapM);
		yIndex = Math.ceil((startY - mapConstSy) / mapImage.mapM);

		// 地図番号を元に地図座標を取得.
		sx = mapConstSx + (xIndex * mapImage.mapM);
		sy = mapConstSy + (yIndex * mapImage.mapM);

		// 差分を取得.
		offsetX = (sx - startX) / mapImage.PixM;
		offsetY = 200 - (sy - startY) / mapImage.PixM;

		mapImage.ViewMap();
		
		screen.updateInterval = 1000;
		document.getElementById("mapData").style.left = offsetX;
		document.getElementById("mapData").style.top = offsetY;
		
		for (y=0; y<TileCount; y++)
		{
			for (x=0; x<TileCount; x++)
			{
				document.images["map"+x+y].width =mapImage.PixelWidth;
				document.images["map"+x+y].height =mapImage.PixelWidth;
			}
		}
		document.getElementById("mapData").style.width = mapImage.PixelWidth*TileCount;
		document.getElementById("mapData").style.height = mapImage.PixelWidth*TileCount;
		
		screen.updateInterval = 0;

		mapImage.GetMapCenter();
		
		// メモの再表示.
		memoController.ShowMemo();
		
		if (this.MapMode == common.MODEMEASURE)
		{
			// 計測結果の再表示.
			measureFigure.Redraw();
		}
		
		// キーマップの中央表示.
		keyMap.ShowCenter(mapImage.MapCenterX, mapImage.MapCenterY);
	}

	// 中央表示(スケール指定).
	// x					x座標(m).
	// y					y座標(m).
	// scale			スケール.
	this.MoveCenterScale = function(x, y, scale)
	{
		// スケール
		mapImage.Scale = scale;
		
		mapImage.GetMapCenter();
		
		for(var i = 0; i < geoAccess.MapScaleSetting.ScaleList.length; i++)
		{
			if (geoAccess.MapScaleSetting.ScaleList[i].Scale == scale)
			{
				mapImage.mapM = geoAccess.MapScaleSetting.ScaleList[i].Interval;
				mapImage.PixM = mapImage.mapM / mapImage.PixelWidth;
				break;
			}
		}
		
		// 中央表示.
		mapImage.MoveCenter(x, y);
		
		// スケールバー再描画.
		mapImage.ShowScaleBar();
	}
	
	// 対応する画像が存在しない場合、別の画像を表示する.
	// x					タイルの何枚目横.
	// y					タイルの何枚目縦.
	this.ShowNoImage = function(x, y)
	{
		if (this.Scale == geoAccess.MapScaleSetting.ScaleList[geoAccess.MapScaleSetting.ScaleList.length -1 ].Scale)	
		{
			//既存の画像が存在しない場合、NoImageを表示する.
			document.images["map"+x+y].src = "MapForm/img/white.gif";
		}
		else
		{
			//既存の画像が存在しない場合、NoImageを表示する.
			document.images["map"+x+y].src = "MapForm/img/NoImage.gif";
		}
	}

	// 非同期読み込み時のコールバック.
	this.onloaded =  function(res)
	{
		//::でつながっているプログレスバーのIDと本文を分離.
		//		reses = res.responseText.split("::").
		var url;
		var name;

		name = names.shift();
		url = urls.shift();

		if (document.images[name].src != url)
		{
			document.images[name].src = url;
		}
	}

	// 背景図画像を設定する.
	this.ViewMap = function()
	{
		var mapFolder;
		var extension;
		
		if (geoAccess.ActiveImageMap != null)
		{
			mapFolder = "map/" + geoAccess.ActiveImageMap.Name + "/" + mapImage.Scale + "/";
			extension = geoAccess.ActiveImageMap.ImageFormat;
		}
		else
		{
			mapFolder = "map/dummy/";
			extension = "jpg";
		}

//		screen.updateInterval = 1000;
		
		if (geoAccess.ActiveImageMap.MapImageTypes == 0x0000)
		{
			for (var y=0; y<TileCount; y++)
			{
				for (var x=0; x<TileCount; x++)
				{
					document.images["map"+x+y].src = "MapForm/img/hidden.gif";
				}
			}
		}
		else
		{
			for (var y=0; y<TileCount; y++)
			{
				for (var x=0; x<TileCount; x++)
				{
					var dispX = Math.ceil((sx + x * mapImage.mapM));
					var dispY = Math.floor((sy + y * mapImage.mapM));
					var imgURL = mapImage.createImageUrl(mapFolder, dispX, dispY, extension);
					document.images["map"+x+y].src = imgURL;
				}
			}
		}

//		screen.updateInterval = 0;

		return false;
	}

/*
	this.CreateMailto = function()
	{
		//メール用のアドレスを作成する。

		var url = "";
		if (document.URL.indexOf("?") > 0)
		{
			url += document.URL.substr(0, document.URL.indexOf("?"));
		}
		else
		{
			url += document.URL;
		}
//		url +="?x=" + parseInt(mapImage.MapCenterX);
//		url +="&y=" + parseInt(mapImage.MapCenterY);
		url +="?x=" + parseInt(mapImage.MapX);
		url +="&y=" + parseInt(mapImage.MapY);
		url += "&scale=" + this.Scale;
		document.getElementById("url").href = "mailto:?body=" + escape(url);
		
		return false;
	}
	
	this.CreateMailFormUrl = function()
	{
		//　市役所に連絡するのアドレス作成部　(commonから移行)
		var url = "";
		url += "javascript:window.open(\"MailForm.aspx?x=" + parseInt(mapImage.MapX) + "&y=" + parseInt(mapImage.MapY) + "\"";
		url += ",\"mailwin\",\"top=" + (screen.height - 350) / 2 + ",left=" + (screen.width - 350) / 2 + ",width=350,height=370,status=no,scrollbars=no,directories=no,menubar=no,resizable=no,toolbar=no\"); void(0);"; 
		document.getElementById("mail").href = url;
	}
*/
	
	// メモアンカーを作成.
	this.CreateMemohref = function()
	{
		var url = "";
		
		url += "javascript:memoController.ShowWindow(" + mapImage.MapX + "," +  mapImage.MapY + ")";
		document.getElementById("memoHref").href = url;
	}
	

	
	// スケールバー表示.
	this.ShowScaleBar = function()
	{
		var barWidth = 100;
		var m;
		
		if (mapImage.PixM * barWidth < 10)
		{
			m = Math.floor(mapImage.PixM * barWidth);
		}
		else
		{
			if (mapImage.PixM * barWidth < 100)
			{
				m = Math.floor(mapImage.PixM * barWidth / 10) * 10;
			}
			else
			{
				if (mapImage.PixM * barWidth < 1000)
				{
					m = Math.floor(mapImage.PixM * barWidth / 100) * 100;
				}
				else
				if (mapImage.PixM * barWidth < 10000)
				{
					m = Math.floor(mapImage.PixM * barWidth / 1000) * 1000;
				}
			}
		}
		
		document.getElementById("m").innerHTML = m + "m";
		
		m = Math.floor(m / mapImage.PixM);
		
		document.getElementById("scaleLine").style.width = m;
		document.getElementById("scaleLineEnd").style.left = m - parseInt(document.getElementById("scaleLineEnd").style.width);
		document.getElementById("m").style.left = parseInt(document.getElementById("scaleLineEnd").style.left) - 10;
	}
	
	// 強調表示.
	// x						x座標(m).
	// y						y座標(m).
	// layerId			レイヤID.
	// featureId		フィーチャID.
	this.MoveCenterEmphasis = function(x, y, layerId, featureId)
	{
	
		document.getElementById("jumpActive").style.top = mapImage.GetMapPosYToPixcelPosY(y) + parseInt(document.getElementById("map").style.top) - 15;
		document.getElementById("jumpActive").style.left = mapImage.GetMapPosXToPixcelPosX(x) - 15;
//		document.getElementById("jumpActive").style.top = mapImage.GetMapPosYToPixcelPosY(mapImage.MapCenterY) + parseInt(document.getElementById("map").style.top) - 15;
//		document.getElementById("jumpActive").style.left = mapImage.GetMapPosXToPixcelPosX(mapImage.MapCenterX) - 15;
		document.getElementById("jumpActive").style.visibility = "visible";
		document.getElementById("jumpActiveImage").src = "MapForm/img/Neighborhood.gif";
		
		if (layerId != -1 && featureId != -1)
		{
			document.getElementById("jumpActiveImage").onmousedown = function(){geoAccess.FeatureClick(layerId.toString(10), featureId); mapImage.HiddenEmphasis();return false;};
		}
		else
		{
			document.getElementById("jumpActiveImage").onmousedown = function(){mapImage.HiddenEmphasis();};
		}
		
		setTimeout("mapImage.HiddenEmphasis()", 5000);
	}

	
	// 強調表示非表示.
	this.HiddenEmphasis = function()
	{
		document.getElementById("jumpActive").style.top = -1000;
		document.getElementById("jumpActive").style.left = -1000;
		document.getElementById("jumpActive").style.visibility = "hidden";
	}

	
	// 付近用強調表示.
	// x						x座標(m).
	// y						y座標(m).
	this.NeighborhoodMouseOver = function(x, y)
	{
		document.getElementById("activeNeighborhood").style.top = mapImage.GetMapPosYToPixcelPosY(y) + parseInt(document.getElementById("map").style.top) - 15;
		document.getElementById("activeNeighborhood").style.left = mapImage.GetMapPosXToPixcelPosX(x) - 15;
		document.getElementById("activeNeighborhood").style.visibility = "visible";
		document.getElementById("activeImage").src = "MapForm/img/Neighborhood.gif";
		hide(); 
		return true;
	}
	
	// 付近用強調表示非表示.
	this.NeighborhoodMouseOut = function()
	{
		document.getElementById("activeNeighborhood").style.top = -1000;
		document.getElementById("activeNeighborhood").style.left = -1000;
		document.getElementById("activeNeighborhood").style.visibility = "hidden";
	}
	
	
	// 背景図設定.
	this.SetMapImage = function()
	{
		//screen.updateInterval = 1000;
		
		for (var y=0; y<TileCount; y++)
		{
			for (var x=0; x<TileCount; x++)
			{
				document.images["mapdummy"+x+y].src = document.images["map"+x+y].src;
				document.images["mapdummy"+x+y].width = mapImage.PixelWidth;
				document.images["mapdummy"+x+y].height = mapImage.PixelWidth;
			}
		}
/*		
		for (var y=0; y<TileCount; y++)
		{
			for (var x=0; x<TileCount; x++)
			{
				document.images["map"+x+y].src = "";
			}
		}
		//screen.updateInterval = 0;
*/		
	}
	
	// 地図情報先読み処理(諸事情により現在は使っていません).
	this.ExpectMap = function()
	{
		var mapFolder;
		var extension;
		
		expectTimerID = -1;
		
		if (geoAccess.ActiveImageMap != null)
		{
			mapFolder = "map/" + geoAccess.ActiveImageMap.Name + "/" + mapImage.Scale + "/";
			extension = geoAccess.ActiveImageMap.ImageFormat;
		}
		else
		{
			mapFolder = "map/dummy/";
			extension = "jpg";
		}
		
		dummysx = sx - mapImage.mapM;
		for (var y=0; y<TileCount; y++)
		{
			if (readFuture)
			{
				return;
			}
			x= 0;
			var dispX = Math.ceil(dummysx);
			var dispY = Math.floor((sy + y * mapImage.mapM));
			var imgURL = mapImage.createImageUrl(mapFolder, dispX, dispY, extension);
			document.images["mapdummy0"+y].src = imgURL;
		}
		
		dummysx = sx + (mapImage.mapM * TileCount);
		for (var y=0; y<TileCount; y++)
		{
			if (readFuture)
			{
				return;
			}
			var dispX = Math.ceil((dummysx));
			var dispY = Math.floor((sy + y * mapImage.mapM));
			var imgURL = mapImage.createImageUrl(mapFolder, dispX, dispY, extension);
			document.images["mapdummy1"+y].src = imgURL;
		}
		
		dummysy = sy - mapImage.mapM;
		for (var x=0; x<TileCount; x++)
		{
			if (readFuture)
			{
				return;
			}
			var dispX = Math.ceil((sx + x * mapImage.mapM));
			var dispY = Math.floor(dummysy);
			var imgURL = mapImage.createImageUrl(mapFolder, dispX, dispY, extension);
			document.images["mapdummy2"+x].src = imgURL;
		}
		
		dummysy = sy + (mapImage.mapM * TileCount);
		for (var x=0; x<TileCount; x++)
		{
			if (readFuture)
			{
				return;
			}
			var dispX = Math.ceil((sx + x * mapImage.mapM));
			var dispY = Math.floor(dummysy);
			var imgURL = mapImage.createImageUrl(mapFolder, dispX, dispY, extension);
			document.images["mapdummy3"+x].src = imgURL;
		}
	}
	
	// 背景図の画像パスを作成する.
	// mapFolder			地図フォルダ名.
	// dispX					x座標.
	// dispY					y座標.
	// extension			拡張子.
	this.createImageUrl = function(mapFolder, dispX, dispY, extension)
	{
		if (dispX >= 0)
		{
			return mapFolder + (dispX).d(6) + "/" + (dispX).d(6) + 'x' +dispY.d(6).toString()+"."+extension;
		}
		else
		{
			return mapFolder + "-" + (dispX * -1).d(6) + "/" + "-" + (dispX *-1).d(6) + 'x' +dispY.d(6).toString()+"."+extension;
	  }
	}
	
	// 座標指定URL作成.
	this.CreateURL = function()
	{
		var url = "";
		if (document.URL.indexOf("?") > 0)
		{
			url += document.URL.substr(0, document.URL.indexOf("?"));
		}
		else
		{
			url += document.URL;
		}
		url +="?x=" + parseInt(mapImage.MapX);
		url +="&y=" + parseInt(mapImage.MapY);
		url += "&scale=" + this.Scale;
		
		return url;
	}
	
	// 印刷設定画面表示非表示.
	this.ShowPrintSetting = function()
	{
		if (document.getElementById('PrintSettingWin').style.visibility == 'hidden')
		{
			document.getElementById('PrintSettingWin').style.visibility = 'visible';
		}
		else
		{
			document.getElementById('PrintSettingWin').style.visibility = 'hidden';
		}
	}
	
	// 図形指定URL作成.
	// layerId			レイヤID.
	// itemId				アイテムID.
	this.CreateItemURL = function(layerId, itemId)
	{
		var url = "";
		if (document.URL.indexOf("?") > 0)
		{
			url += document.URL.substr(0, document.URL.indexOf("?"));
		}
		else
		{
			url += document.URL;
		}
		url +="?layer=" + layerId;
		url +="&item=" + itemId;
		url +="&layercategory=" + geoAccess.InitialSetting.LayerCategory;
		
		common.SetClipboard(url);
		
		alert('クリップボードにコピーしました。');
	}
	
	// 凡例の表示非表示.
	// imageURL					イメージURL.
	// img							対象オブジェクト.
	this.ShowHanreiWin = function(imageURL, img)
	{
		var hanreiWin = null;
		var obj = null;
		var html = "";
		
		if (geoAccess.InitialSetting.HanreiVisible)
		{
			hanreiWin = document.getElementById("HanreiWin");
			
			obj = common.GetChildNode(hanreiWin, "console");
			
			html = "<img src ='" + imageURL + "' style ='MARGIN: 4px 4px 4px 4px;' >"
			
			obj.innerHTML = html;
			
	//hanreiWin.style.top = parseInt(document.getElementById("TabFrame").offsetTop) - parseInt(document.getElementById("layerList").parentNode.scrollTop) + parseInt(img.parentNode.offsetTop) + parseInt(img.offsetHeight);
			hanreiWin.style.top = parseInt(document.getElementById("TabFrame").offsetTop) - parseInt(document.getElementById("layerList").parentNode.scrollTop) + parseInt(img.parentNode.offsetTop);
			hanreiWin.style.left = parseInt(document.getElementById("TabFrame").offsetLeft) + parseInt(img.offsetLeft) + parseInt(img.offsetWidth);		hanreiWin.style.visibility = "visible";
		}
	}

	// 凡例非表示.	
	this.UnShowHanreiWin = function()
	{
		var hanreiWin = null;
		
		hanreiWin = document.getElementById("HanreiWin");
		hanreiWin.style.top = -1000;
		hanreiWin.style.left = -1000;
		hanreiWin.style.visibility = "hidden";
	}
	
	// クリッカブルマップクリックイベント.
	this.FeatureClick = function(layerId, itemId)
	{
		// 計測モードなら処理は行わない.
		if (mapImage.MapMode == common.MODEMEASURE)
		{
			return;
		}
		
		if(document.getElementById("geoMap").style.visibility == "hidden")
		{
			return;
		}
	
		if (mapImage.ShowAttribute)
		{
			geoAccess.FeatureClick(layerId, itemId);
		}
	}
	
	// ブラウザチェック.
	this.CheckBrowser = function()
	{
		var version = common.CheckBrowser();
			
		if (version != common.IE6 && version != common.FOX2)
		{
			document.getElementById('Browser').style.visibility = "visible";
		}
	}
	
	// クリックされた場所のＫＭＬを作成する
	this.CreatePlaceKml = function(name)
	{
		var url = "";
		
		if (name.length == 0)
		{
			alert("名称を入力してください。");
			return;
		}
		
		url += "KmlCreator.aspx?";
		url += "Name=" + escape(name);
		url += "&X=" + this.kmlX;
		url += "&Y=" + this.kmlY;
		
		window.location.href=url;
		
		document.getElementById('kmlText').value = "";
		dragLayer.Close('KmlWin');

	}
	
	// クリックされた場所のＫＭＬを作成する
	this.CreateItemKml = function(layerId, itemId)
	{
		var url = "";
		
		url += "KmlCreator.aspx?";
		url += "LayerId=" + layerId;
		url += "&ItemId=" + itemId;
		
		window.location.href=url;
	}
	
	
	// KMZの作成
	this.CreateKMZ = function()
	{
		window.location.href = kmzURL;
	}
}

