
var map;
var center = new GLatLng( 38.8,138.032227 );
//var center = new GLatLng( 38.307181,138.032227 );
var cupoint = center;
var baseIcon;
var mousePoint;
var hotelInfo = {
	parkingInformation: "駐車場情報"		,
	access: "施設へのアクセス"		,
	roomFixture: "部屋設備・備品"		,
	hotelFixture: "館内設備"		,
	aboutBath: "風呂について"		,
	availabeCreditCard: "使用可能なカード"		,
	aboutLeisure: "周辺のレジャーについて"		,
	cancelPolicy: "キャンセルポリシー"		,
	note: "条件・注意事項・備考"		, 
	handicappedFixture: "身障者設備"	

};

var condition = {
	kinen: "禁煙ルーム"		,
	internet: "インターネットが出来る部屋"		,
	daiyoku: "大浴場あり"		,
	onsen: "温泉"		,
	aboutBath: "風呂について"		,
	breakfast: "朝食あり"		,
	dinner: "夕食あり"		

};

var pref_kanji = 
{
hokkaido : "北海道" , 
aomori : "青森" , 
iwate : "岩手" , 
miyagi : "宮城" , 
akita : "秋田" , 
yamagata : "山形" , 
hukushima : "福島" , 

tochigi : "栃木" , 
gunma : "群馬" , 
ibaragi : "茨城" , 
saitama : "埼玉" , 
tiba : "千葉" , 
tokyo : "東京" , 
kanagawa : "神奈川" , 
yamanasi : "山梨" , 

nagano : "長野" , 
niigata : "新潟" , 
toyama : "富山" , 
ishikawa : "石川" , 
hukui : "福井" , 

shizuoka : "静岡" , 
gihu : "岐阜" , 
aichi : "愛知" , 
mie : "三重" , 

shiga : "滋賀" , 
kyoto : "京都" , 
osaka : "大阪" , 
hyogo : "兵庫" , 
nara : "奈良" , 
wakayama : "和歌山" , 

tottori : "鳥取" , 
simane : "島根" , 
okayama : "岡山" , 
hiroshima : "広島" , 
yamaguchi : "山口" , 

tokushima : "徳島" , 
kagawa : "香川" , 
ehime : "愛媛" , 
kouchi : "高知" , 

hukuoka : "福岡" , 
saga : "佐賀" , 
nagasaki : "長崎" , 
kumamoto : "熊本" , 
ooita : "大分" , 
miyazaki : "宮崎" , 
kagoshima : "鹿児島" , 
okinawa : "沖縄" 


};


var List = {};
function List_length(){
	var len=0;
	for( var index in List ){
		len++;
	}
	return len;
}//end function

function render2(jsonData) {

    for (var i = 0; i < 5; i++) {
str += jsonData.Body.VacantHotelSearch.hotel[i].roomName;
    }
	var obj1 = document.getElementById("message");
	$(obj1).innerHTML = str;


}//end function

var Letter;
Letter = {
	index : -1,
	get : function(){
		var i = ( Letter.index >= 0 ) ? Letter.index : 0;
		return String.fromCharCode("A".charCodeAt(0)+i);
	},
	getNext : function(){
		Letter.index++;
		return Letter.get();
	}
}
var name="";
var discription="";
var Chizu = {};
var obj1;
var operation;

Chizu = {
	load : function(jsonData){
//	load : function(jsonData, operation){

		var self = Chizu;
		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map"));
			map.addControl( new GLargeMapControl() );
			map.addControl( new GScaleControl() );
			map.addControl( new GMapTypeControl() );
			map.addControl( new GOverviewMapControl() );
			new GKeyboardHandler(map);


if(longi_org && latit_org){
			map.setCenter( new GLatLng( latit_org, longi_org ), 14);
}else{
			map.setCenter(center, 5);
}


//	ここから：楽天APIから受け取ったJSONデータの処理-----------------------------------------//
//	var items ;
status= jsonData.Header.Status;
var error;

if(status == 'NotFound'){
//	alert("検索結果が存在しません");
	resultStr = '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;">' + "条件に合致するデータが見つかりません<BR><!P><A HREF=\"javascript:history.back()\">←条件を変えて検索する</A><!/P>";
	error = 1;

}else if(status == 'ServerError'){
//	alert("ウェブサービス側のエラーです");
	resultStr = '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;">' + "ウェブサービス側のエラーです";

	error = 1;

}else if(status == 'ClientError'){
//	alert("入力エラーです");
	resultStr = '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;">' + "入力エラーです";

	error = 1;

}else if(status == 'Maintenance '){
//	alert("メンテナンス中です");
	resultStr = '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;">' + "メンテナンス中です";

	error = 1;

}

if(error){
//エラーの場合戻る前に行う処理を定義する
	resultStr += '</tr></table>';
	var resultList = document.getElementById("result");
	$(resultList).innerHTML = resultStr;

	var markObj = document.createElement("div");
	var mapW = parseInt(map.getContainer().style.width);
	var mapH = parseInt(map.getContainer().style.height);
	var markW = 31;	// センターマークの横幅（ピクセル数）
	var markH = 31;	// センターマークの縦幅（ピクセル数）
	var x = (mapW - markW) / 2;	// センターマークの中心位置（X座標）
	var y = (mapH - markH) / 2;	// センターマークの中心位置（Y座標）
	markObj.style.position = "absolute";
	markObj.style.top = y+"px";
	markObj.style.left = x+"px";
	markObj.style.backgroundImage = "url(image/centerMark.gif)";
	markObj.style.width = markW+"px";
	markObj.style.height = markH+"px";
	markObj.style.opacity = 0.5;
	map.getContainer().appendChild(markObj);

	self.getHani();
	return 0;

}


if(operation == 'VacantHotelSearch'){
	items = jsonData.Body.VacantHotelSearch.hotel;
	var rooms = jsonData.Body.VacantHotelSearch.room;
	var headerArgs = jsonData.Header.Args.Arg;
}else if(operation == 'SimpleHotelSearch'){
	items = jsonData.Body.SimpleHotelSearch.hotel;
}else if(operation == 'HotelDetailSearch'){
	items = jsonData.Body.HotelDetailSearch;
}else if(operation == 'KeywordHotelSearch'){
	items = jsonData.Body.KeywordHotelSearch.hotelSimple;
	var recordCount = jsonData.Body.KeywordHotelSearch.recordCount;
}else{
	return;
}



	var resultStr = '';

	//最大表示数
	var view = 10;
	var from = (page - 1) * view + 1;
	var to   = page * view ;

	var itemLength = items.length;
	var totalPage ;

	if(operation != "KeywordHotelSearch"){
		if(to > itemLength){to = itemLength;}
		//全体のページ数を求める
		totalPage = Math.floor(itemLength / view)+1;
		if(itemLength % view == 0){
			totalPage --;
		}
	}else{
		//***** キーワードサーチの場合（ページごとにAPIが結果を返してくるパターンの場合） *****//
		if(to > recordCount){to = recordCount;}
		//全体のページ数を求める
		totalPage = Math.floor(recordCount / view)+1;
		if(recordCount % view == 0){
			totalPage --;
		}
	}


	var html = "";
//	var prevp = page - 1;
//	var nextp = page + 1;
	var pagerUrl = "";
	pagerUrl = program_vacant + "?";

/*
 *	検索結果のメッセージの出力
 */

//***** 施設情報サーチ以外（＝複数件見つかる場合）かつキーワードサーチ以外の場合 *****//
if(operation != "HotelDetailSearch" && operation != "KeywordHotelSearch"){
	resultStr += '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';

if(operation == "VacantHotelSearch"){
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;">検索条件：';
	resultStr += headerArgs.checkinDate.value + "～" + headerArgs.checkoutDate.value 
		+ "／お" + headerArgs.adultNum.value + "人様&nbsp;" 
		+ headerArgs.roomNum.value + "部屋"  +"／<!BR>";
	var sq = headerArgs.squeezeCondition.value;
	for(var key in condition){
		if( sq .indexOf(key, 0) >= 0){
			resultStr += condition[key] + "／";
		}
	}
	resultStr += '</tr>';

}


	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;"><b>' + itemLength + '件見つかりました</b></tr>';
	resultStr += '<tr><td style="background-color: #FFFFFF;"><font style="font-size:12pt;">' + from + '件から' + to + '件を表示しています';

	if(totalPage != 1){
		resultStr += '<td style="background-color: #FFFFFF;" align="right">';
	}
	if(page != 1){
		resultStr += '<a href="' + program_vacant + '?' + allParam + '&p='+prevp+'"><font style="font-size:12pt;">←前のページ</font></a>';
	}
	if(page != totalPage){
		resultStr += '&nbsp;|&nbsp;<a href="' + program_vacant + '?' + allParam + '&p='+nextp+'"><font style="font-size:12pt;">次のページ→</font></a>';
//		resultStr += '&nbsp;|&nbsp;<a href="">次のページ→</a>';
	}

	resultStr += '</tr></table>';

}else if(operation == "KeywordHotelSearch"){

	//***** キーワードサーチの場合（ページごとにAPIが結果を返してくるパターンの場合） *****//
	resultStr += '<table border="0" align="center" cellpadding="3" cellspacing="1" style="background-color: #FFFFFF;" width="98%">';
	resultStr += '<tr><td style="background-color: #FFFFFF;" colspan="2"><font style="font-size:12pt;"><b>' + recordCount + '件見つかりました</b></tr>';
	resultStr += '<tr><td style="background-color: #FFFFFF;"><font style="font-size:12pt;">' + from + '件から' + to + '件を表示しています';

	if(totalPage != 1){
		resultStr += '<td style="background-color: #FFFFFF;" align="right">';
	}
	if(page != 1){
		resultStr += '<a href="' + program_vacant + '?' + allParam + '&p='+prevp+'"><font style="font-size:12pt;">←前のページ</font></a>';
	}
	if(page != totalPage){
		resultStr += '&nbsp;|&nbsp;<a href="' + program_vacant + '?' + allParam + '&p='+nextp+'"><font style="font-size:12pt;">次のページ→</font></a>';
//		resultStr += '&nbsp;|&nbsp;<a href="">次のページ→</a>';
	}

	resultStr += '</tr></table>';
}


/*
 *	表の部分の出力
 */

//***** キーワードサーチの場合（楽天APIは簡易な出力しか返さない） *****//
if(operation == "KeywordHotelSearch"){

	resultStr += '<table border="0" align="center" cellpadding="3" cellspacing="1" class="table-style" width="100%"><tr><th class=table-style>No.<th class=table-style>施設名称／施設のある都道府県</tr>'	;

from -= view * (page - 1);
to   = itemLength;
//alert("from: "+from+" to:"+to+" itemLength:"+itemLength);
//return;
	for(var i = from-1; i < to; i++) {
		var elem = items[i];
		var flagno = i+1;
		flagno += view * (page -1);

		if(elem["hotelName"]){
			var ken = pref_kanji[elem["middleClassCode"]];
			resultStr += '<tr><td BGCOLOR=#efefef ALIGN=CENTER><B>'+flagno+'</B><td bgcolor=#FFFFFF style="font-size:12pt;"><a href="'+ program_vacant +'?operation=HotelDetailSearch&hotelNo='+ elem["hotelNo"] +'" class=result>' + elem["hotelName"] + '</a>';
			resultStr += '&nbsp;／&nbsp;<a href="'+ program 
				+'?operation=SimpleHotelSearch'
				+'&prefecture='+ elem["middleClassCode"] 
				+'&kanji='+ encodeURIComponent(ken) +'" class=result>' 
				+ ken + '</a>';

//			 + '<td bgcolor=#FFFFFF align=center><form action="./cookie.cgi" method="get" name="mainForm2">'
//			 + '<input type="button" id="writeButton3" value="追加" '
//			 + 'onclick="writeCookieNew(\'' + elem["hotelNo"] + '\',\''+ elem["hotelName"] + '\',\''+ elem["hotelImageUrl"] + '\')">'
//;

			resultStr += "</tr>";
		}

	}







}else if(operation == "HotelDetailSearch"){
//***** 施設情報サーチ以外の場合 １件のみ表示 *****//
	resultStr += '<table border="0" align="center" cellpadding="3" cellspacing="1" class="table-style" width="100%"><tr><th class=table-style>施設名称<TH class=table-style>特色・アクセス</tr>'	;
		var i = 0;

		var elem = items;
		var baloon = "";

//longitudeがnullの場合もあるのでエラーを回避する
if(elem["latitude"] && elem["longitude"]){
		var lat = elem["latitude"]  / 3600;
		var lon = elem["longitude"] / 3600;
		lat = 0.99989305  * lat + 0.000017464 * lon + 0.0046017	;
		lon = 0.999916957 * lon - 0.000046038 * lat + 0.010040	;


		//地図内のマーカーにかかわるHTMLを作成する
		if(elem["hotelImageUrl"]){
			baloon += "<table bgcolor=white style=\"width:270px;height=190px;\"><tr><td align=center><a href=" + elem["hotelAffiliateUrl"] + " class=result target=_blank>" + elem["hotelName"] +"<hr size=1><img src=" + elem["hotelImageUrl"] + " border=0 alt=\""+ elem["hotelSpecial"] +"\"></a></tr></table>";
//			baloon += "<div id=baloon align=left><a href=" + elem["hotelAffiliateUrl"] + " class=result target=_blank>" + elem["hotelName"] +"<BR><img src=" + elem["hotelImageUrl"] + " border=0 alt=\""+ elem["hotelSpecial"] +"\"></a></div>";
//			baloon += "<div id=baloon align=left><a href="+ program_vacant + "?operation=HotelDetailSearch&hotelNo="+ elem["hotelNo"] + " class=result>" + elem["hotelName"] +"<BR><img src=" + elem["hotelImageUrl"] + " border=0></a></div>";
		}else if(elem["hotelName"]){
			baloon += "<div id=baloon align=left><a href=" + elem["hotelAffiliateUrl"] + " class=result target=_blank>" + elem["hotelName"] +"</a></div>";
//			baloon += "<div id=baloon align=left><a href="+ program_vacant + "?operation=HotelDetailSearch&hotelNo="+ elem["hotelNo"] + " class=result>" + elem["hotelName"] +"</a></div>";
		}

		var flagno = i+1;
		List[i] = self.createMarker( flagno, new GLatLng( lat, lon ), elem["hotelName"] , baloon );
//		List[i] = self.createMarker( flagno, new GLatLng( lat, lon ), elem["hotelName"] , "" );

}

		//表組みを作成する
		if(elem["hotelName"]){
			resultStr += '<tr height="15"><td bgcolor=#FFFFFF><a href="'+ elem["hotelAffiliateUrl"] +'" class=result_large target=_blank style="font-size:12pt;">' + elem["hotelName"] + '</a><td bgcolor=#FFFFFF style="font-size:11pt;">'   ;
//			resultStr += '<tr><td bgcolor=#FFFFFF><a href="'+ program_vacant +'?operation=HotelDetailSearch&hotelNo='+ elem["hotelNo"] +'" class=result>' + elem["hotelName"] + '</a><td bgcolor=#FFFFFF>'   ;
			if( elem["hotelSpecial"] ){
				resultStr +=  elem["hotelSpecial"]  ;
			}

		}
		if(elem["hotelImageUrl"]){
			resultStr += '<tr><td bgcolor=#FFFFFF rowspan="30" valign="top"><a href="'+ elem["hotelAffiliateUrl"] +'" class=result target=_blank><img src=' + elem["hotelImageUrl"] + ' style="border: 1px black solid;"></a>' ;
		}

		resultStr += '<br><a href="#vacant">［空室検索］</a>' ;

		if(elem["roomImageUrl"]){
			resultStr += '<br><a href="' + elem["roomImageUrl"] + '" target="_blank">［部屋画像有り］</a>' ;
//			resultStr += '<br>部屋画像有り→<a href="' + elem["roomImageUrl"] + '" target="_blank">部屋画像を別窓で開く</a>' ;
		}

		if(elem["hotelMapImageUrl"]){
			resultStr += '<br><a href="' + elem["hotelMapImageUrl"] + '" target="_blank">［施設提供地図画像有り］</a>' ;
//			resultStr += '<br>施設提供地図画像有り→<a href="' + elem["hotelMapImageUrl"] + '" target="_blank">施設提供地図画像を別窓で開く</a>' ;
		}

		if(elem["hotelNo"]){
			resultStr += '<form action="./cookie.cgi" method="get" name="mainForm2">';
			resultStr += '<input type="button" id="writeButton3" value="お気に入りに追加" onclick="writeCookie()">';
			resultStr += '<input type="hidden" id="favHotelNo"      name="favHotelNo" value="' + elem["hotelNo"] + '">';
			resultStr += '<input type="hidden" id="favHotelName"    name="favHotelName" value="' + elem["hotelName"] + '">';
			resultStr += '<input type="hidden" id="favHotelImageUrl"    name="favHotelImageUrl" value="' + elem["hotelImageUrl"] + '">';
			resultStr += '</form>';
		}


/*
		if(elem["roomImageUrl"]){
			resultStr += '<BR><img src=' + elem["roomImageUrl"] + '>' ;
		}
*/

		if(elem["address2"]){
			resultStr += '<TH class=table-style>住所</tr>' + '<tr><td bgcolor=#FFFFFF>' + elem["address1"] + elem["address2"] ;
			resultStr += "</tr>";
		}
		if(elem["checkinTime"]){
			resultStr += '<tr><TH class=table-style>チェックイン～チェックアウト</tr>' + '<tr><td bgcolor=#FFFFFF>' + elem["checkinTime"] + "～"+ elem["checkoutTime"] ;
			resultStr += "</tr>";
		}

		if(elem["hotelAffiliateUrl"]){
			resultStr += '<tr><TH class=table-style>ホームページ</tr>' + '<tr><td bgcolor=#FFFFFF>有り→<a href="' + elem["hotelAffiliateUrl"] + '" target="_blank">施設のホームページを別窓で開く</a>' ;
			resultStr += "</tr>";
		}


		for(var key in hotelInfo){
			if(elem[key]){
				//&lt;BR&gt;を<BR>にする
				elem[key] = elem[key] . split("<BR>") . join("");
				var newStr=elem[key] . replace(/&lt;BR&gt;/g,'<BR>');

//if(hotelInfo[key] == "風呂について")alert(elem[key]);
				resultStr += '<tr><TH class=table-style>' + hotelInfo[key] + '</tr>' + '<tr><td bgcolor=#FFFFFF>' + newStr  ;
//				resultStr += '<tr><TH class=table-style>' + hotelInfo[key] + '</tr>' + '<tr><td bgcolor=#FFFFFF>' + elem[ key ]  ;
				resultStr += "</tr>";
			}
		}

}else{
//***** キーワードサーチ・施設情報サーチ以外の場合（SimpleHotelSearch、VacantHotelSearchの場合） *****//
	if(operation == "SimpleHotelSearch"){
		var tokusyoku = "特色・アクセス";
	}else{
		var tokusyoku = "特色・アクセス・部屋名・１泊料金";
	}
	resultStr += '<table border="0" align="center" cellpadding="3" cellspacing="1" class="table-style" width="100%"><tr><th class=table-style>No.<th class=table-style>施設名称<TH class=table-style>' + tokusyoku + '<TH class=table-style nowrap>お気に入り</tr>'	;
	var iList = 0;

itemsRoop:
	for(var i = from-1; i < to; i++) {
//	for(var i = 0; i < view; i++) {
		var elem = items[i];
		var baloon = "";

		var flagno = i+1;
		iList = i % 10;

//longitudeがnullの場合もあるのでエラーを回避する
if(elem["latitude"] && elem["longitude"]){

//continue itemsRoop;

		var lat = elem["latitude"]  / 3600;
		var lon = elem["longitude"] / 3600;
		lat = 0.99989305  * lat + 0.000017464 * lon + 0.0046017	;
		lon = 0.999916957 * lon - 0.000046038 * lat + 0.010040	;

		if(elem["hotelImageUrl"]){
			baloon += "<table bgcolor=white style=\"width:270px;height=190px;\"><tr><td align=center><a href=" + elem["hotelAffiliateUrl"] + " class=result target=_blank>" + elem["hotelName"] +"<hr size=1><img src=" + elem["hotelImageUrl"] + " border=0 alt=\""+ elem["hotelSpecial"] +"\"></a></tr></table>";
//			baloon += "<div id=baloon align=left><a href=" + elem["hotelAffiliateUrl"] + " class=result target=_blank>" + elem["hotelName"] +"<BR><img src=" + elem["hotelImageUrl"] + " border=0 alt=\""+ elem["hotelSpecial"] +"\"></a></div>";
//			baloon += "<div id=baloon align=left><a href="+ program_vacant + "?operation=HotelDetailSearch&hotelNo="+ elem["hotelNo"] + " class=result>" + elem["hotelName"] +"<BR><img src=" + elem["hotelImageUrl"] + " border=0></a></div>";
		}
		List[iList] = self.createMarker( iList+1, new GLatLng( lat, lon ), elem["hotelName"] , baloon );

}//end if


		if(elem["hotelName"]){

			var link = program_vacant +'?operation=HotelDetailSearch'
				+'&hotelNo='+ elem["hotelNo"] 
				+'&nm='+ encodeURIComponent(elem["hotelName"]) ;

			resultStr += '<tr><td BGCOLOR=#efefef ALIGN=CENTER><B>'
				+flagno+'</B><td bgcolor=#FFFFFF valign=top>'
				+ '<a href="' + link + '" class=result_large style="font-size:12pt;">' + elem["hotelName"] +'</a>'
				+ '&nbsp;&nbsp;<a href="' + link + '" target="_blank"><img src="image/nw.gif" border=0 width=13 height=11 align=absmiddle alt="別窓で開く"></a>'
				+ '<td bgcolor=#FFFFFF valign=top>'  + elem["hotelSpecial"] + '<BR>' + elem["access"] ;

//resultStr += rooms.length;
if(operation == 'VacantHotelSearch'){
	for (var ii=0; ii < rooms.length; ii++) {
		if(rooms[ii].hotelNo == elem["hotelNo"]){
			var roomName = rooms[ii].roomName;
			var reserveAffiliateUrl = rooms[ii].reserveAffiliateUrl;
			var regularCharge = rooms[ii].dailyCharge[0].regularCharge;
			var rakutenCharge = rooms[ii].dailyCharge[0].rakutenCharge;
			resultStr += "<li style=\"line-height:150%;\"><a href="+reserveAffiliateUrl+" target=_blank>" + roomName + "</a>&nbsp;<font style=\"color:red;\"><b>"+ rakutenCharge +"</b>円</font>";
//			resultStr += "<li style=\"line-height:150%;\"><a href="+reserveAffiliateUrl+" target=_blank>" + roomName + "</a><BR>通常価格<strike>&nbsp;" + regularCharge + "円</strike>&nbsp;→&nbsp;楽天価格&nbsp;<font style=\"color:red;\">"+ rakutenCharge +"円</font>";

		}
	}

}

			resultStr += '<td bgcolor=#FFFFFF align=center><form action="./cookie.cgi" method="get" name="mainForm2">'
			 + '<input type="button" id="writeButton3" value="追加" '
			 + 'onclick="writeCookieNew(\'' + elem["hotelNo"] + '\',\''+ elem["hotelName"] + '\',\''+ elem["hotelImageUrl"] + '\')">'
;

			resultStr += "</td></tr></form>";
		}


//		iList++;

	}
}



//	ここまで：楽天APIから受け取ったJSONデータの処理-----------------------------------------//





			var resultList = document.getElementById("result");
//			if(resultStr && operation != "HotelDetailSearch"){
			if(resultStr){
				resultStr += '</table>';
				$(resultList).innerHTML = resultStr;
			}

	var markObj = document.createElement("div");
//	var mapW = parseInt(self.getContainer().style.width);
//	var mapH = parseInt(self.getContainer().style.height);
	var mapW = parseInt(map.getContainer().style.width);
	var mapH = parseInt(map.getContainer().style.height);
	var markW = 31;	// センターマークの横幅（ピクセル数）
	var markH = 31;	// センターマークの縦幅（ピクセル数）
	var x = (mapW - markW) / 2;	// センターマークの中心位置（X座標）
	var y = (mapH - markH) / 2;	// センターマークの中心位置（Y座標）
	markObj.style.position = "absolute";
	markObj.style.top = y+"px";
	markObj.style.left = x+"px";
	markObj.style.backgroundImage = "url(image/centerMark.gif)";
	markObj.style.width = markW+"px";
	markObj.style.height = markH+"px";
	markObj.style.opacity = 0.5;
//	self.getContainer().appendChild(markObj);
	map.getContainer().appendChild(markObj);

			if(List_length()>0)	self.initZoom();
			self.getHani();

		}//end if (GBrowserIsCompatible())
	},//end load : function(jsonData)
	createMarker : function( num, point, name, discription) {
		if(num == 0){num = 10;};

      var icon = new GIcon();
      icon.image = "/image/icon/marker" + num + ".png";
      icon.iconSize = new GSize(20, 34);
      icon.shadowSize = new GSize(37, 34);
      icon.iconAnchor = new GPoint(9, 34);
			icon.shadow = "./image/shadow.png";
			icon.infoWindowAnchor = new GPoint(9, 2);
			icon.infoShadowAnchor = new GPoint(18, 25);



		var markeropts = new Object();
		markeropts.title = name;
		markeropts.icon = icon;
		var marker = new GMarker(point, markeropts);
		GEvent.addListener(marker, "mouseover", function(){
			marker.openInfoWindowHtml(discription);
		});
		map.addOverlay( marker );
		return marker;

	},
	initZoom : function(){
		var gb;
		var first = 1;
		for( var index in List ){
			var marker = List[index];
			if( first ){
				gb = new GLatLngBounds( marker.getPoint(), marker.getPoint() );
				first = 0;
			}else{
				var point = marker.getPoint();
				gb.extend( point );
			}
		}
		map.setCenter( gb.getCenter(), map.getBoundsZoomLevel( gb ) );
	},
	//表示中のマップの範囲を求める
	getHani:function(){
//			var rectObj = map.getBounds();
//			var southWest = rectObj.getSouthWest();
//			var northEast = rectObj.getNorthEast();

			document.getElementById("mapWH").innerHTML = "<form action="+program_vacant+"><input type=hidden name=x value=" + (map.getCenter()).lng() + ">" 
				+ "<input type=hidden name=y value=" + (map.getCenter()).lat() + ">" 
				+ "<input type=hidden name=operation value=SimpleHotelSearch>この地図の中心から半径<select name=searchRadius id=searchRadius><option value=1>1.0<option value=2 selected>2.0<option value=3>3.0</select>km以内の施設を<input type=submit value=\"検索する\"></form>";
//			document.getElementById("mapWH").innerHTML = "<form action="+program_vacant+"><input type=hidden name=x value=" + (map.getCenter()).lng() + ">" + "<input type=hidden name=y value=" + (map.getCenter()).lat() + ">" + "<input type=hidden name=operation value=SimpleHotelSearch><input type=submit value=\"この地図の中心近辺の施設を検索する\"></form>";


			//ドラッグした場合
			GEvent.addListener(map, "move", function(){
				document.getElementById("mapWH").innerHTML = "<form action="+program_vacant+"><input type=hidden name=x value=" + (map.getCenter()).lng() + ">" 
				+ "<input type=hidden name=y value=" + (map.getCenter()).lat() + ">" 
				+ "<input type=hidden name=operation value=SimpleHotelSearch>この地図の中心から半径<select name=searchRadius id=searchRadius><option value=1>1.0<option value=2 selected>2.0<option value=3>3.0</select>km以内の施設を<input type=submit value=\"検索する\"></form>";

			} );



	}
};

//個別空室検索用
function getJson(){

	//選択されている日付からJSONP用URLを作成する
	var f_nen1  = document.forms["vacant_form_2"].elements["f_nen1"].value;
	var f_tuki1 = document.forms["vacant_form_2"].elements["f_tuki1"].value;
	var f_hi1   = document.forms["vacant_form_2"].elements["f_hi1"].value;

//チェックイン日と宿泊日数からチェックアウト日を求める
var checkinDateObj = new Date();
checkinDateObj.setFullYear(f_nen1)  	;
checkinDateObj.setMonth   (f_tuki1) 	;
checkinDateObj.setDate    (f_hi1)  	;
var checkin = checkinDateObj.getTime()	;


var msec    = document.forms["vacant_form_2"].elements["stay"].value * (24*60*60*1000);
//alert("checkin "+checkin+" msec "+msec);

var newday  = new Date(checkin + msec);

var f_nen2  = newday.getFullYear();
var f_tuki2 = "0" + newday.getMonth   () ;
var f_hi2   = "0" + newday.getDate    ();

//alert("f_nen2 "+f_nen2+" f_tuki2 "+f_tuki2+" f_hi2 "+f_hi2);


//二桁表示にする
f_tuki2  = f_tuki2 .substring (f_tuki2.length-2, f_tuki2.length);
f_hi2    = f_hi2   .substring (f_hi2.length-2  , f_hi2.length);

//alert("f_nen2 "+f_nen2+" f_tuki2 "+f_tuki2+" f_hi2 "+f_hi2);

//	var f_nen2  = document.forms["vacant_form_2"].elements["f_nen2"].value;
//	var f_tuki2 = document.forms["vacant_form_2"].elements["f_tuki2"].value;
//	var f_hi2   = document.forms["vacant_form_2"].elements["f_hi2"].value;

	var f_otona_su = document.forms["vacant_form_2"].elements["f_otona_su"].value;	//adultNum
	var f_heya_su  = document.forms["vacant_form_2"].elements["f_heya_su"].value;	//roomNum
	var f_kin2    = document.forms["vacant_form_2"].elements["f_kin2"].value;	//minCharge
	var f_kin     = document.forms["vacant_form_2"].elements["f_kin"].value;	//maxCharge

	var hotelNo   = document.forms["vacant_form_2"].elements["hotelNo"].value;	//hotelNo

	var kinen     = document.forms["vacant_form_2"].elements["kinen"].checked;		//
//alert("kinen"+kinen);
	var internet  = document.forms["vacant_form_2"].elements["internet"].checked;	//
	var daiyoku   = document.forms["vacant_form_2"].elements["daiyoku"].checked;	//
	var onsen     = document.forms["vacant_form_2"].elements["onsen"].checked;		//
	var breakfast = document.forms["vacant_form_2"].elements["breakfast"].checked;	//
	var dinner    = document.forms["vacant_form_2"].elements["dinner"].checked;		//


	if(kinen)		{kinen    = "kinen"};
	if(internet)	{internet = "internet"};
	if(daiyoku )	{daiyoku  = "daiyoku"};
	if(onsen   )	{onsen    = "onsen"};
	if(breakfast)	{breakfast= "breakfast"};
	if(dinner  )	{dinner   = "dinner"};

//	var kinen     = document.forms["vacant_form_2"].elements["kinen"].value;	//
//	var internet  = document.forms["vacant_form_2"].elements["internet"].value;	//
//	var daiyoku   = document.forms["vacant_form_2"].elements["daiyoku"].value;	//
//	var onsen     = document.forms["vacant_form_2"].elements["onsen"].value;	//
//	var breakfast = document.forms["vacant_form_2"].elements["breakfast"].value;//
//	var dinner    = document.forms["vacant_form_2"].elements["dinner"].value;	//

	//丹羽時子さんのデベロッパーID 6036a982fd6a8448176add5ba5968a3e
	//丹羽時子さんのアフィリエイトID(β版) 04326adb.a3301feb.04326adc.8a351b71
	var json = "http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&affiliateId=04326adb.a3301feb.04326adc.8a351b71&version=2007-04-11&operation=VacantHotelSearch&checkinDate="
//	var json = "http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&affiliateId=043bf4ad.39b3adf5.043bf4ae.5295532c&version=2007-04-11&operation=VacantHotelSearch&checkinDate="
		+f_nen1+"-"+f_tuki1+"-"+f_hi1
		+"&checkoutDate="
		+f_nen2+"-"+f_tuki2+"-"+f_hi2
		+"&adultNum="+f_otona_su
		+"&roomNum="+f_heya_su
		+"&squeezeCondition="+kinen+","+internet+","+daiyoku+","+onsen+","+breakfast+","+dinner
		+"&hotelNo="+hotelNo
		+"&minCharge="+f_kin2
		+"&maxCharge="+f_kin
		+"&callBack=checkVacant";
//alert("json "+json);

//	var json = "http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&affiliateId=043bf4ad.39b3adf5.043bf4ae.5295532c&version=2007-04-11&operation=VacantHotelSearch&checkinDate="+f_nen1+"-"+f_tuki1+"-"+f_hi1+"&checkoutDate="+f_nen2+"-"+f_tuki2+"-"+f_hi2+"&adultNum="+f_otona_su+"&roomNum="+f_heya_su+"&squeezeCondition="+kinen+","+internet+","+daiyoku+","+onsen+","+breakfast+","+dinner+"&hotelNo="+hotelNo+"&callBack=checkVacant";
//	var json = "http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&affiliateId=043bf4ad.39b3adf5.043bf4ae.5295532c&version=2007-04-11&operation=VacantHotelSearch&largeClassCode=japan&middleClassCode=iwate&smallClassCode=kuji&checkinDate=2007-07-01&checkoutDate=2007-07-02&adultNum=1&roomNum=1&squeezeCondition=,,,,,&hotelNo=5026&callBack=checkVacant";
//	var json = "http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&affiliateId=043bf4ad.39b3adf5.043bf4ae.5295532c&version=2007-04-11&operation=VacantHotelSearch&largeClassCode=japan&middleClassCode=iwate&smallClassCode=kuji&checkinDate=2007-07-10&checkoutDate=2007-07-11&adultNum=1&roomNum=1&squeezeCondition=,,,,,&hotelNo=20711&callBack=checkVacant";

	var jsonRequest = new JSONscriptRequest( json );
	jsonRequest.buildScriptTag();
	jsonRequest.addScriptTag();

//		$(result).innerHTML = "OK<a href="+reserveAffiliateUrl+">ご予約はこちらから</a>";

}//end function

//個別空室検索用
function checkVacant(jsonData){
	
	var statusJson = jsonData.Header.Status;
	var result = document.getElementById("status");
	var ans = "";
//	items = jsonData.Body.VacantHotelSearch.room;
	if(statusJson == "Success"){
		var hotelAffiliateUrl = jsonData.Body.VacantHotelSearch.hotel[0].hotelAffiliateUrl;
		var hotelName = jsonData.Body.VacantHotelSearch.hotel[0].hotelName;
		var headerArgs = jsonData.Header.Args.Arg;
		ans += "<font color=red size=+1><a href="+hotelAffiliateUrl+" target=_blank>" + hotelName + "：空室あり</a></font><BR>";
//		ans += "<font color=red size=+1><a href="+hotelAffiliateUrl+" target=_blank>ご予約できます！</a></font><BR>";
//		ans += "<font color=red size=+1>ご予約できます！</font><BR>";
		ans += headerArgs.checkinDate.value + "～" + headerArgs.checkoutDate.value + "<BR>お" + headerArgs.adultNum.value + "人様&nbsp;" + headerArgs.roomNum.value + "部屋"  +"<BR>";

		for(var key in condition){
			var sq = headerArgs.squeezeCondition.value;
			if( sq .indexOf(key, 0) >= 0){
				ans += condition[key] + "<BR>";
			}
		}


		for(var i = 0; i < jsonData.Body.VacantHotelSearch.room.length; i++) {
			var roomName = jsonData.Body.VacantHotelSearch.room[i].roomName;
			var reserveAffiliateUrl = jsonData.Body.VacantHotelSearch.room[i].reserveAffiliateUrl;
//			var hotelName = jsonData.Body.VacantHotelSearch.hotel[0].hotelName;
			var regularCharge = jsonData.Body.VacantHotelSearch.room[i].dailyCharge[0].regularCharge;
			var rakutenCharge = jsonData.Body.VacantHotelSearch.room[i].dailyCharge[0].rakutenCharge;
//			var hotelName ;
//			ans += "<li style=\"line-height:150%;\"><a href="+reserveAffiliateUrl+" target=_blank>"+hotelName+"・"+roomName+"&nbsp;"+regularCharge+"</a>";
			ans += "<li style=\"line-height:150%;\"><a href="+reserveAffiliateUrl+" target=_blank>" + roomName + "</a><BR>通常価格1<strike>&nbsp;" + regularCharge + "円</strike>&nbsp;→&nbsp;楽天価格&nbsp;<font style=\"color:red;\"><b>"+ rakutenCharge +"</b>円</font>";


		}
		$(result).innerHTML = ans;

	}else{
		var link_direct = program + "?operation=VacantHotelSearch&" ;
		var givenCondition = jsonData.Header.Args.Arg;
		if(givenCondition){
			link_direct += "&version=2007-04-11";
			if(givenCondition.maxCharge.value) link_direct += "&f_kin=" + givenCondition.maxCharge.value	;
			if(givenCondition.minCharge.value) link_direct += "&f_kin2=" + givenCondition.minCharge.value	;
			if(givenCondition.adultNum.value)  link_direct += "&f_otona_su=" + givenCondition.adultNum.value ;
			if(givenCondition.roomNum.value)   link_direct += "&f_heya_su="  + givenCondition.roomNum.value ;
			if(givenCondition.checkinDate.value) {
				var f_nen1  = givenCondition.checkinDate.value.substr(0, 4);
				var f_tuki1 = givenCondition.checkinDate.value.substr(5, 2);
				var f_hi1   = givenCondition.checkinDate.value.substr(8, 2);

var checkinDateObj = new Date();
checkinDateObj.setFullYear(f_nen1)  	;
checkinDateObj.setMonth   (f_tuki1) 	;
checkinDateObj.setDate    (f_hi1)  	;
var checkin = checkinDateObj.getTime()	;
//alert("checkin:"+checkin);
				link_direct += "&f_nen1="  + f_nen1	;
				link_direct += "&f_tuki1=" + f_tuki1;
				link_direct += "&f_hi1="   + f_hi1	;

			}
			if(givenCondition.checkoutDate.value) {
				var f_nen2  = givenCondition.checkoutDate.value.substr(0, 4);
				var f_tuki2 = givenCondition.checkoutDate.value.substr(5, 2);
				var f_hi2   = givenCondition.checkoutDate.value.substr(8, 2);

var checkoutDateObj = new Date();
checkoutDateObj.setFullYear(f_nen2)  	;
checkoutDateObj.setMonth   (f_tuki2) 	;
checkoutDateObj.setDate    (f_hi2)  	;
var checkout = checkoutDateObj.getTime()	;
var stay = checkout - checkin;
//alert("stay:"+stay);
stay /= (24*60*60*1000);
stay = Math.round(stay);

/*
alert("stay:"+stay);
*/
				link_direct += "&stay=" + String(stay);
//				link_direct += stay;
			}
//			link_direct += "&stay=1" ;

		}


		$(result).innerHTML = "<font color=red size=+1>ご指定の条件に合致するお部屋が<!B>見つかりませんでした<!/B></font><BR><li style=\"line-height:150%;\">条件を変えて再検索してみてください<li style=\"line-height:150%;\"><a href=\"" + link_direct + "\">宿泊条件から絞り込むこともできます</a>";
	}


}//end function

//日付自動選択メソッド
function setDate(){
//alert("Hi");
var dateObj	= new Date();
var today 	= dateObj.getTime();
var msec  	= 1 * (24*60*60*1000);//1日後との時差（ミリ秒）
var dateFrom= new Date(today + msec);	//チェックイン
//var dateTo  = new Date(today + 2*msec);	//チェックアウト

var f_nen1  = dateFrom.getFullYear();
var f_tuki1 = dateFrom.getMonth()+1;
var f_hi1   = dateFrom.getDate();

//var f_nen2  = dateTo.getFullYear();
//var f_tuki2 = dateTo.getMonth()+1;
//var f_hi2   = dateTo.getDate();


//右上の定置フォーム
	document.forms["vacant_form_1"]["f_nen1"]	.options[f_nen1 -2007].selected = true;//optionsの配列はゼロから始まるので１引く
	document.forms["vacant_form_1"]["f_tuki1"]	.options[f_tuki1-1].selected = true;//
	document.forms["vacant_form_1"]["f_hi1"]	.options[f_hi1  -1].selected = true;//

//	document.forms["vacant_form_1"]["f_nen2"]	.options[f_nen2 -2007].selected = true;//
//	document.forms["vacant_form_1"]["f_tuki2"]	.options[f_tuki2-1].selected = true;//
//	document.forms["vacant_form_1"]["f_hi2"]	.options[f_hi2  -1].selected = true;//

//個別フォーム
	if(document.forms["vacant_form_2"]){
		document.forms["vacant_form_2"]["f_nen1"]	.options[f_nen1 -2007].selected = true;//
		document.forms["vacant_form_2"]["f_tuki1"]	.options[f_tuki1-1].selected = true;//
		document.forms["vacant_form_2"]["f_hi1"]	.options[f_hi1  -1].selected = true;//

//		document.forms["vacant_form_2"]["f_nen2"]	.options[f_nen2 -2007].selected = true;//
//		document.forms["vacant_form_2"]["f_tuki2"]	.options[f_tuki2-1].selected = true;//
//		document.forms["vacant_form_2"]["f_hi2"]	.options[f_hi2  -1].selected = true;//

	}



}//end function

function getAreaInfo(){

//var middleClass = new Array();
var jsonRequest_area = new JSONscriptRequest('http://api.rakuten.co.jp/rws/1.7/json?developerId=05e82c4b3f7216bdbcd425a75c0f171d&operation=GetAreaClass&version=2007-04-11&callBack=obj2eval');
    jsonRequest_area.buildScriptTag();
    jsonRequest_area.addScriptTag();

//alert( middleClass.length );



}//end function


