var g_imgBase = '/map/img/';
var g_zoomButtonsURL = [
	['kouikizu.gif',        'kouikizu-on.gif',       'kouikizu-off.gif'],
	['ZoomIcons/zoom1.gif', 'ZoomIcons/zoom1on.gif', 'ZoomIcons/zoom1off.gif'],
	['ZoomIcons/zoom2.gif', 'ZoomIcons/zoom2on.gif', 'ZoomIcons/zoom2off.gif'],
	['ZoomIcons/zoom3.gif', 'ZoomIcons/zoom3on.gif', 'ZoomIcons/zoom3off.gif'],
	['ZoomIcons/zoom4.gif', 'ZoomIcons/zoom4on.gif', 'ZoomIcons/zoom4off.gif'],
	['ZoomIcons/zoom5.gif', 'ZoomIcons/zoom5on.gif', 'ZoomIcons/zoom5off.gif'],
	['ZoomIcons/zoom6.gif', 'ZoomIcons/zoom6on.gif', 'ZoomIcons/zoom6off.gif'],
	['ZoomIcons/zoom7.gif', 'ZoomIcons/zoom7on.gif', 'ZoomIcons/zoom7off.gif']
];
var g_sizeButtonsURL = [
	['size1.gif', 'size1on.gif', null],
	['size2.gif', 'size2on.gif', null]
];
var g_buttonsCache = [];

var g_size = 0;

function MM_openBrWindow(theURL,winName,features) {
  var win = window.open(theURL,winName,features);
  win.focus();
  return false;
}
function scroll(dir) {
  netmap.slideTo(dir);
  return true;
}
function scroll2(dir) {
  netmap.slideTo(dir);
  return false;
}
function setScale(scaleCode) {
  if (scaleCode == 'W') //広域図ボタン
  {
    scaleCode = 0;	//最小縮尺へ
  }

  g_scale = scaleCode;
  updateScaleButtonImage();
  netmap.zoomTo({scale:scaleCode});
  
  return true;
}
function setSize(size) {
	g_size = size;
	updateSizeButtonImage();
	
	process_onresize();
}
function setWidth(id, width)
{
	if (document.getElementById(id))
		document.getElementById(id).style.width = width;
}
function setHeight(id, height)
{
	if (document.getElementById(id))
		document.getElementById(id).style.height = height;
}
function get_inner_width() {
    if (window.innerWidth) {
        return window.innerWidth;
    } else if (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) {
        // IE6CSS: measure the html element's clientWidth
        return document.body.parentElement.clientWidth;
    } else if (document.body && document.body.clientWidth) {
        return document.body.clientWidth;
    }
    return 0;
}
function get_inner_height() {
    if (window.innerHeight) {
        return window.innerHeight;
    } else if (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) {
        // IE6CSS: measure the html element's clientHeight
        return document.body.parentElement.clientHeight;
    } else if (document.body && document.body.clientHeight) {
        return document.body.clientHeight;
    }
    return 0;
}

function show_license() {
  return MM_openBrWindow('/map/license.html','license','width=400,height=65,resizable=yes');
}

function process_onload()
{
	var buttonsURLs = [g_zoomButtonsURL, g_sizeButtonsURL];
	for (var a = 0; a < buttonsURLs.length; a++)
	{
		for (var i = 0; i < buttonsURLs[a].length; i++)
		{
			for (var j = 0; j < buttonsURLs[a][i].length; j++)
			{
				if (buttonsURLs[a][i][j])
				{
					var img = new Image();
					img.src = g_imgBase + buttonsURLs[a][i][j];
					g_buttonsCache.push(img);
				}
			}
		}
	}

	for (var i = 0; i < g_disableScales.length; i++)
	{
		var no     = g_disableScales[i];
		var id     = 'scale' + no;
		var button = document.getElementById(id);
		if (button)
		{
			button.src     = g_imgBase + g_zoomButtonsURL[no][2];
			button.onclick = null;
		}
	}
	
	updateScaleButtonImage();
	updateSizeButtonImage();

    // Netmapオブジェクトの設定
    netmap = new Netmap('MAP');
    netmap.enableKeyboardInterface(false);
    netmap.enableMouseWheel(false);
    netmap.zoomTo({lat:g_lat, lon:g_lon, scale:g_scale});

    // スケールバーを追加
    netmap.addScalebar();
}

function process_onresize()
{
    if (!netmap)
		return;
 
	var center = netmap.getCenter();

	var diff     = 26;
	var baseW    = 640;
	var baseH    = 625-diff;
	var baseMapW = 400;
	var baseMapH = 400;
	
	var w = get_inner_width();
	var h = get_inner_height();
	
	var mapWidth  = g_size == 0
					? baseMapW
					: Math.max(350, w - (baseW-baseMapW) - 20);
	var mapHeight = g_size == 0
					? baseMapH
					: Math.max(200, h - (baseH-baseMapH) - 15);

	setWidth('titletable', mapWidth  +  10);
	
	setWidth( 'maptable',  mapWidth  + 100);
	setHeight('maptable',  mapHeight + 210-diff);

	setWidth( 'maptd',     mapWidth  +  10);
	setHeight('maptd',     mapHeight +  10);

	setWidth( 'MAP',       mapWidth);
	setHeight('MAP',       mapHeight);

    // map をリサイズ
    netmap.resize();

	netmap.zoomTo({lat:center.lat, lon:center.lon});
}

function updateScaleButtonImage()
{
    for (var i = 0; i < g_zoomButtonsURL.length; i++)
    {
		var button = document.getElementById('scale' + i);
		if (button && button.onclick)
		{
			var index = i == g_scale ? 1 : 0;
			var img   = g_imgBase + g_zoomButtonsURL[i][index];
			button.src = img;
		}
    }
}

function updateSizeButtonImage()
{
    for (var i = 0; i < g_sizeButtonsURL.length; i++)
    {
		var button = document.getElementById('size' + i);
		if (button && button.onclick)
		{
			var index = i == g_size ? 1 : 0;
			var img   = g_imgBase + g_sizeButtonsURL[i][index];
			button.src = img;
		}
    }
}
