// ***** グローバル変数宣言 *****
var PRIVATE_SEARCH_LIMIT      = 1000;		// 社内向け検索上限数
var PUBLIC_SEARCH_LIMIT       = 100;		// 公開向け検索上限数
var OPA                       = 50;			// 画像透過率(1～100)
var UPDATE_DATE_SUFFIX        = "201009";	//更新日

// ブラウザ判別 IEフラグ = (true=IE,false=それ以外)
var IE_FLG;
if( navigator.userAgent.indexOf("MSIE") != -1 ){
    IE_FLG = true;
}else{
    IE_FLG = false;
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;
	if (!d) {
		d = document;
	}
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}
	if (!(x = d[n]) && d.all) {
		x = d.all[n];
	}
	for (i = 0; !x && i < d.forms.length; i++) {
		x = d.forms[i][n];
	}
	for (i = 0; !x && d.layers && i < d.layers.length; i++) {
		x = MM_findObj(n, d.layers[i].document);
	}
	if (!x && d.getElementById) {
		x = d.getElementById(n);
		return x;
	} else {
		return x;
	}
}

function MM_showHideLayers() { //v6.0
	var i,p,v,obj,args = MM_showHideLayers.arguments;
	for (i = 0; i < (args.length - 2); i += 3) {
		if ((obj = MM_findObj(args[i])) != null) {
			v = args[i+2];
			if (obj.style) {
				obj = obj.style;
				v   = (v == 'show') ? 'visible' : (v=='hide') ? 'hidden' : v;
			}
			obj.visibility = v;
		}
	}
}



// 地図画像からの検索処理
function srch_map(todCode,type) {
	document.fm_srch_map.method = "POST";
	document.fm_srch_map.keyword.value = todCode;
	if (type) {
		document.fm_srch_map.type.value = type;
	}
	document.fm_srch_map.submit();
}

// 検索前処理
function goSearch(obj_fm, keyword, search_type, genre_code){

	keyword = keyword.replace(/^[ 　\t]+|[ 　\t]+$/gm,"");
	if(keyword != ""){
		obj_fm.keyword.value = keyword;
		if (search_type) {
			obj_fm.type.value = search_type;
		}
		if (obj_fm.genre_code) obj_fm.genre_code.value = "";
		if (genre_code) {
			obj_fm.genre_code.value = genre_code;
		}
		obj_fm.submit();
		return false;
	}else{
		alert('検索対象を入力してください。');
		return false;
	}
}

//-------------------------------------------------------------
// サービスエリアへの遷移
//-------------------------------------------------------------
function goServiceArea(lon,lat) {
	document.fm.lon.value = lon;
	document.fm.lat.value = lat;
	document.fm.action = "service_area.php";
	document.fm.method = "POST";
	document.fm.submit();
	return false;
}

//-----------------------------------------------------------------------------
// クリックされた地点の色情報を取得する
//-----------------------------------------------------------------------------
function getColor (lat, lon){
	var util = new UtilClass();
	// ファイル名取得
	var ret  = util.getFileName(11, lon, lat);

	// 縮尺レベル11の画像一枚の分の距離（度）
	var level11 = new Array();
	level11["x"] = 7.0465686277777777777777777777778e-5;	//1pxあたりの経度(度)
	level11["y"] = 5.7416485111111111111111111111111e-5;	//1pxあたりの緯度(度)

	// クリックされたX地点と画像右上X座標の差
	var x_diff = "";
	// クリックされたY地点と画像右上Y座標の差
	var y_diff = "";

	var httpObj    = ZdcXmlHttp.create();

	// 地図中心ファイルの左上経度を求める
	x_diff = (ret["x"] * level11["x"] * 256) + 135;

	// 地図中心ファイルの左上緯度を求める
	y_diff = ((ret["y"] + 1) * level11["y"] * 256) + 35;

	// マウスクリック経度から地図中心ファイルの左上経度の差を求める
	x_diff = lon - x_diff;

	// マウスクリック緯度から地図中心ファイルの左上緯度の差を求める
	y_diff = y_diff - lat;


	// 求めた度をピクセルに変換
	x_diff = x_diff / level11["x"];

	// 求めた度をピクセルに変換
	y_diff = y_diff / level11["y"];

	// ピクセルを整数変換
	x_diff = Math.floor(x_diff);
	y_diff = Math.floor(y_diff);




	// 指定緯度経度を含むタイルファイルの中心を求める
	centerx = ((ret["x"] + 0.5) * level11["x"] * 256) + 135;
	centery = ((ret["y"] + 0.5) * level11["y"] * 256) + 35;
	// メッシュコード取得
	var mesh = util.LatLonToMesh(centery, centerx);
	// メッシュコードからディレクトリを求める
	var file_path = mesh[0] + "/" + mesh[1] + "/";

	// 指定ピクセルのRGBを求める
	if(httpObj) {
		httpObj.open('POST', "./common/lib/ajax/ajx_get_color.php", true);
		httpObj.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8");
		httpObj.send("file=" + encodeURI("/tile/" + UPDATE_DATE_SUFFIX + "/simulation/11/" + file_path + ret["file"])
					 + "&x=" + encodeURI(x_diff)
					 + "&y=" + encodeURI(y_diff)
		);

		httpObj.onreadystatechange = function(result) {
										if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
											httpObj.responseText.charset ='UTF-8';
											document.getElementById('List').innerHTML = httpObj.responseText;
										}
									 };
	}
}

//-------------------------------------------------------------
//
// 画面遷移処理
// 引数
//		fm     : フォームオブジェクト
//		p_data : POSTデータ格納オブジェクト
//		p_val  : POSTデータ
// 戻り値：なし
//
//-------------------------------------------------------------
function chgDisplay(fm,p_data,p_val){
	p_data.value = p_val;
	fm.method = 'POST';
	fm.submit();
	return false;
}


function historyLink(fm, action, type, keyword, history_number) {
	fm.action         = action;
	fm.type.value     = type;
	fm.keyword.value  = keyword;
	fm.history_number.value = history_number;
	fm.submit();
}


function goSimulation(fm, lat, lon, fulladdress, keyword) {
	fm.lat.value     = lat;
	fm.lon.value     = lon;
	fm.keyword.value = fulladdress;
	if (keyword) {
		fm.keyword.value += '-' + keyword;
	}
	fm.type.value = 'simulation';
	fm.submit();
}

function imgChange(elem, src) {
	if (elem) {
		elem.src = src;
	}
}
