/********************************************************************
 C&R研究所刊 「マッシュアップかんたんAtoZ」 サンプルコード
.....................................................................
 CAPTER 3-9 - じゃらんWebサービス
.....................................................................
 (C) 2007 M.HONDA
********************************************************************/

var proxy = "proxy.php";	// proxy.phpの相対アドレスを設定する

function getYado(lat, lng, range) {
	lat = chgWgs2TkyLat(lat, lng);
	lng = chgWgs2TkyLng(lat, lng);
	y = do2byou(lat);
	x = do2byou(lng);
	var apiUrl = "http://jws.jalan.net/APIAdvance/HotelSearch/V1/";
	var queri =  "?key=sco110ea0c5260&range=" + range + "&count=30" +
				 "&pict-size=2&xml_ptn=1&start=1" +
				 "&x=" + x + "&y=" + y;
	var url = proxy + "?METHOD=GET&URL=" + encodeURIComponent(apiUrl + queri);
	var request = GXmlHttp.create();
	request.open("GET", url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var numofHotels = xmlDoc.getElementsByTagName("NumberOfResults")[0].firstChild.nodeValue;

					map.clearOverlays();
					var marker = new GMarker(point);	// マーカー表示
					map.addOverlay(marker);			// マーカー表示

				if(numofHotels > 0){
					if(numofHotels > 30){ numofHotels = 30; }

					var i;
					for (i = 0; i < numofHotels; i++) {
						dspHotelMarker(xmlDoc.getElementsByTagName("Hotel")[i]);
					}
					document.getElementById('search_result').innerHTML = '検索結果：<strong>' + numofHotels + '</strong>件';
				}else{
					document.getElementById('search_result').innerHTML = '検索結果：<strong>0</strong>件<br /><span class="red">地図をズームアウトして再度検索してください。</span>';
				}
		}
	}
	request.send(null);
}

function dspHotelMarker(objHotel) {
	var name = objHotel.getElementsByTagName("HotelName")[0].firstChild.nodeValue;
	var address = objHotel.getElementsByTagName("HotelAddress")[0].firstChild.nodeValue;
	var no = objHotel.getElementsByTagName("HotelID")[0].firstChild.nodeValue;
	var url1 = "<a href=\"http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2418193&pid=876256926&vc_url=http%3a%2f%2fwww%2ejalan%2enet%2fuw%2fuwp3000%2fuww3001%2edo%3fyadNo%3d" + no + "%26rootCd%3d03%26afCd%3d31%26vos%3dnjalvccp99000\" target=\"_blank\" ><img Src=\"http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=2418193&pid=876256926\" height=\"1\" width=\"1\" Border=\"0\">" + name + "</a>";
	var url2 = "<a href=\"http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2418193&pid=876256926&vc_url=http%3a%2f%2fwww%2ejalan%2enet%2fuw%2fuwp3000%2fuww3001%2edo%3fyadNo%3d" + no + "%26rootCd%3d03%26afCd%3d31%26vos%3dnjalvccp99000\" target=\"_blank\" ><img Src=\"http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=2418193&pid=876256926\" height=\"1\" width=\"1\" Border=\"0\">空室確認・予約はこちら</a>";
	var caption = objHotel.getElementsByTagName("HotelCaption")[0].firstChild.nodeValue;
	if(objHotel.getElementsByTagName("PictureURL")[0]!=null){
		var picture = objHotel.getElementsByTagName("PictureURL")[0].firstChild.nodeValue;
	}
	var price = objHotel.getElementsByTagName("SampleRateFrom")[0].firstChild.nodeValue;

	var html = "<div id=\"infow\">" +
		   "<div id=\"infow_title\">" + url1 + "</div>" +
		   "<div id=\"infow_left\">" +
		   "<img src=\"" + picture + "\" width=\"135px\" /><br />" +
		   "提供：<a href=\"http://jws.jalan.net/\">じゃらん Web サービス</a></div>" +
		   "<div id=\"infow_right\">" +
		   caption + "<br /><br />■&nbsp;参考宿泊料：" + price + "円" +
		   "<br />" + url2 + "</div>" +
		   "<br class=\"clear\" />" +
		   "</div>";

	var img = new Image();
	img.src = picture;

	var x = objHotel.getElementsByTagName("X")[0].firstChild.nodeValue;
	var y = objHotel.getElementsByTagName("Y")[0].firstChild.nodeValue;
	var lat = byou2do(y);
	var lng = byou2do(x);
	lng = chgTky2WgsLng(lat, lng);
	lat = chgTky2WgsLat(lat, lng);
	var marker = createGMarker(name, lat, lng, html);
}

function createGMarker(name, lat, lng, html) {
	var infoObj = new Object();
	infoObj.title = name;
	var gpObj = new GLatLng(lat, lng);
//	var marker = new GMarker(gpObj, infoObj);
//	map.addOverlay(marker);

	orgMarker(gpObj,hotel_icon,html);			// アイコン表示宣言


//	GEvent.addListener(marker, "click", function() {
//		marker.openInfoWindowHtml(html);
//	});
}

//-------------------------------------------------------------------
// 測地系の変換
//	※本コードはNowral氏が下記に公開されている変換式を参考にしています。
//	http://homepage3.nifty.com/Nowral/index.html

function chgTky2WgsLng(lat, lng) {
	return (lng - lat * 0.000046038 - lng * 0.000083043 + 0.010040);
}

function chgTky2WgsLat(lat, lng) {
	return (lat - lat * 0.00010695 + lng * 0.000017464 + 0.0046017);
}

function chgWgs2TkyLng(lat, lng) {
	return (lng + lat * 0.000046047 + lng * 0.000083049 - 0.010041);
}

function chgWgs2TkyLat(lat, lng) {
	return (lat + lat * 0.00010696 - lng * 0.000017467 - 0.0046020);
}

function byou2do(num) {
	return (num / 3600000);
}

function do2byou(num) {
	return Math.round(num * 3600000)
}

// EOF