//
// Ajax Control
//

// 現在の表示内容をクリアするfunction remove_children ( id ) {    var div = document.getElementById( id );    while ( div.firstChild ) {         div.removeChild( div.lastChild );    }}

//
// Ajax request処理の共通化
//

function AjaxReq(url, param, resFunc) {

	var xmlObj = new Ajax.Request( 			url,
			{			method: 'get',
			parameters: param,			onComplete: resFunc
			}
	);
}

//
// Mush up!!
// resFuncの定義
//

//
// Flickr　mush up
//

var FlickrMushup = Class.create();

FlickrMushup.prototype = {
// ajaxFlickrのXML Response処理
	initialize: function() {

		remove_children( 'main' );
		var objInfo = document.getElementById( 'main' );

		var objTitle = document.createElement('h1');
		objTitle.setAttribute('id', 'title');
		objInfo.appendChild( objTitle );

		var objServiceName = document.createElement('div');
		objServiceName.setAttribute('id', 'webservice');
		objInfo.appendChild( objServiceName );

		var objInformation = document.createElement('div');
		objInformation.setAttribute('id', 'info');
		objInfo.appendChild( objInformation );

		$("title").innerHTML= "駅前写真館";
		$("info").innerHTML = 'Loading....'; 

	},

	req: AjaxReq,
 
	jsonres: function(jsonObj) {

		remove_children( 'info' );

		var flickrData = jsonObj.responseText;
		var data = eval("("+ flickrData +")");

		if (!data) {
			alert("Errorが発生しました。");
			return;
		}	

		$("webservice").innerHTML = 'Powered by <a href="http://www.flickr.com/services/api/" target="_blank">Flickr Services</a>';
		var photoList = data.photos.total;
//		alert(photoList);

		if (photoList < 1) {
			$('info').innerHTML = "No Photo";
			return;
		}
		//
		// retrieve photo data
		//	
		var fldata = data.photos.photo;
		var taregtId = document.getElementById( 'info' );

		for( var i=0; i< 10; i++ ) {
			var idVal = fldata[i].id;
			var ownerVal = fldata[i].owner;
			var secretVal = fldata[i].secret;
			var serverVal = fldata[i].server;
			var titleVal = fldata[i].title;

			var urlFlickr = 'http://www.flickr.com/photos/' + ownerVal +'/'+ idVal +'/';
			var imgSFlickr = 'http://static.flickr.com/'+ serverVal + '/'+ idVal +'_'+ secretVal +'_s.jpg';
			var imgLFlickr = 'http://static.flickr.com/'+ serverVal + '/'+ idVal +'_'+ secretVal + '.jpg';
	

			var atag = document.createElement('a');

			atag.setAttribute('href', urlFlickr);
			atag.setAttribute('target', '_blank');

			var imgsrc = document.createElement('img');
			imgsrc.setAttribute('src', imgSFlickr);
			imgsrc.setAttribute('height', '50');
			imgsrc.setAttribute('width',  '50');

			atag.appendChild( imgsrc );
			taregtId.appendChild( atag );
		}
	},

	clear: function(){
		remove_children( 'main' );
	}
}

//
// Hotpepper　mush up
//

var HotpepperMushup = Class.create();

HotpepperMushup.prototype = {
// HotpepperのXML Response処理
	initialize: function() {

		remove_children( 'main' );
		objInfo = document.getElementById( 'main' );

		var objTitle = document.createElement('h1');
		objTitle.setAttribute('id', 'title');
		objInfo.appendChild( objTitle );

		var objServiceName = document.createElement('div');
		objServiceName.setAttribute('id', 'webservice');
		objInfo.appendChild( objServiceName );

		var objInformation = document.createElement('div');
		objInformation.setAttribute('id', 'info');
		objInfo.appendChild( objInformation );

		var objPage = document.createElement('div');
		objPage.setAttribute('id', 'setpage');
		objInfo.appendChild( objPage );

		$("title").innerHTML="駅前で食事";
		$("info").innerHTML = "情報取得中・・・";
	},

	req: AjaxReq,
 
	xmlres: function(xmlObj) {

		hptitle = "Powerd by Hotpepper";
		var xmlHotpepper = xmlObj.responseXML;

		var resData = xmlHotpepper.getElementsByTagName("Results");
		var numOfRes = resData[0].getElementsByTagName("NumberOfResults")[0].childNodes[0].nodeValue;
		var numOfpage = resData[0].getElementsByTagName("DisplayFrom")[0].childNodes[0].nodeValue;
		var disp = resData[0].getElementsByTagName("DisplayPerPage")[0].childNodes[0].nodeValue;

		remove_children( 'info' );
		if (numOfRes < 1) {
			$("info").innerHTML = "Shop情報はありません。";
			return;
		}

		$("webservice").innerHTML = 'Shop情報が' + numOfRes + '件見つかりました。(Powered by <a href="http://www.hotpepper.jp/" target="_blank">ホットペッパー.jp</a>）';

	// page set
		var pageset = "";

		var totalPage = Math.ceil(numOfRes/10)+1;
		var lastnum = Math.floor(numOfRes/100);
		var firstnum = Math.floor(numOfpage/100);
		var currentnum = numOfpage/10;
		var prevp = (firstnum-1)*10+1;
		var nextp = (firstnum+1)*10+1;

		if ( numOfRes > 10){
			if( totalPage < 11){
				for (i=1; i< totalPage; i++){
					if ( i == (currentnum +1) ){
						$("setpage").innerHTML += i;
					}else{
						if ( i == 1 && numOfpage == 1 ){
						$("setpage").innerHTML += 1;
						}else{
							pageset = '<a href="javascript:eki_grume(' + i + ')">' + i + '</a>';
							$("setpage").innerHTML += pageset;
						}
					}
				}
			}else{
				if (lastnum == firstnum){
					if (firstnum > 0){
						if (firstnum == 1){
							$("setpage").innerHTML = '<a href="javascript:eki_grume(1)"> <-prev- </a>';
						}else{
							$("setpage").innerHTML = '<a href="javascript:eki_grume(' + prevp + ')"> <-prev- </a>';
						}	
					}

					for (i=firstnum*10+1; i< totalPage; i++){
						if ( i == (currentnum +1) ){
							$("setpage").innerHTML += i;
						}else{
							if ( i == 1 && numOfpage == 1 ){
								$("setpage").innerHTML += 1;
							}else{
								pageset = '<a href="javascript:eki_grume(' + i + ')">' + i + '</a>';
								$("setpage").innerHTML += pageset;
							}
						}
					}
				}else{
					if (firstnum > 0){
						if (firstnum == 1){
							$("setpage").innerHTML = '<a href="javascript:eki_grume(1)"> <-prev- </a>';
						}else{
							$("setpage").innerHTML = '<a href="javascript:eki_grume(' + prevp + ')"> <-prev- </a>';
						}	
					}

					for (i=(firstnum*10+1); i< (firstnum*10+11); i++){
						if ( i == (currentnum +1) ){
							$("setpage").innerHTML += i;
						}else{
							if ( i == 1 && numOfpage == 1 ){
								$("setpage").innerHTML += 1;
							}else{
								pageset = '<a href="javascript:eki_grume(' + i + ')">' + i + '</a>';
								$("setpage").innerHTML += pageset;
							}
						}
					}
					$("setpage").innerHTML += '<a href="javascript:eki_grume(' + nextp + ')"> -next-> </a>';
				}
			}
		}else{
			$("setpage").innerHTML = "1";
		}

		var shopData = xmlHotpepper.getElementsByTagName("Shop");
		var taregtId = document.getElementById( 'info' );
		for (i=0; i<　disp; i++)		{
			shopName = shopData[i].getElementsByTagName("ShopName")[0].childNodes[0].nodeValue;
			shopX1 = shopData[i].getElementsByTagName("Longitude")[0].childNodes[0].nodeValue;			shopY1 = shopData[i].getElementsByTagName("Latitude")[0].childNodes[0].nodeValue;
			foodName = shopData[i].getElementsByTagName("GenreName")[0].childNodes[0].nodeValue;			shopCatch = shopData[i].getElementsByTagName("ShopCatch")[0].childNodes[0].nodeValue;			shopURL = shopData[i].getElementsByTagName("ShopUrl")[0].childNodes[0].nodeValue;			shopQR = shopData[i].getElementsByTagName("KtaiQRUrl")[0].childNodes[0].nodeValue;			shopImgS = shopData[i].getElementsByTagName("PcSmallImg")[0].childNodes[0].nodeValue;
			shopImgM = shopData[i].getElementsByTagName("PcMiddleImg")[0].childNodes[0].nodeValue;
	
			var atag = document.createElement('a');

			atag.setAttribute('href', shopURL);
			atag.setAttribute('onclick', 'return GB_showPage(hptitle,this.href)');

			var imgsrc = document.createElement('img');
			imgsrc.setAttribute('src', shopImgS);
			imgsrc.setAttribute('height', '50');
			imgsrc.setAttribute('width',  '50');

			atag.appendChild( imgsrc );
			taregtId.appendChild( atag );

			var tab1 = '<div id="shoptag">'
			+ '<a style="font-size: 100%;" href="' + shopURL + '" '			+ 'onclick="return GB_showPage(hptitle,this.href)">'
			+  shopName + '</a>'			+ '<p style="text-align:left; font-size:90%;">' + shopCatch + '</p>'
			+ '<img style="text-align:center; margin:1px 5px 1px;" src="'+ shopImgM +'"/>'			+ '<p style="text-align:center; font-size:90%;">写真提供：ホットペッパー.jp</p>'
			+ '</div>';

			var tab2 = '<div style="text-align:center;"><img src="' + shopQR + '"/>'
			+ '<p style="font-size:90%;">Powered by <a href="http://www.hotpepper.jp/" target="_blank">ホットペッパー.jp</a></p></div>';
 	
			var tl1 = "Shop情報";
			var tl2 = "QRコード";
			ekiMap.createMarker(shopX1 , shopY1 ,tl1, tab1, tl2, tab2);		}

	}//xmlres end
}

//
// じゃらんmush up
//

var JalanMushup = Class.create();

JalanMushup.prototype = {
// JalanのXML Response処理
	initialize: function() {

		remove_children( 'main' );
		objInfo = document.getElementById( 'main' );

		var objTitle = document.createElement('h1');
		objTitle.setAttribute('id', 'title');
		objInfo.appendChild( objTitle );

		var objServiceName = document.createElement('div');
		objServiceName.setAttribute('id', 'webservice');
		objInfo.appendChild( objServiceName );

		var objInformation = document.createElement('div');
		objInformation.setAttribute('id', 'info');
		objInfo.appendChild( objInformation );

		var objPage = document.createElement('div');
		objPage.setAttribute('id', 'setpage');
		objInfo.appendChild( objPage );

		$("title").innerHTML="駅前で宿泊";
		$("info").innerHTML = "情報取得中・・・";
	},

	req: AjaxReq,
 
	xmlres: function(xmlObj) {


		remove_children( 'info' );

		jatitle = "Powerd by じゃらん";
		var xmlJalan = xmlObj.responseXML;

		var resData = xmlJalan.getElementsByTagName("Results");
		if (resData == null){ alert('Errorが発生しました。');}

		var numOfRes = resData[0].getElementsByTagName("NumberOfResults")[0].childNodes[0].nodeValue;
		var numOfpage = resData[0].getElementsByTagName("DisplayFrom")[0].childNodes[0].nodeValue;
		var disp = resData[0].getElementsByTagName("DisplayPerPage")[0].childNodes[0].nodeValue;

		if (numOfRes < 1) {
			$("info").innerHTML = "Hotel情報はありません。";
			return;
		}

		$("webservice").innerHTML = 'Hotel情報が' + numOfRes + '件見つかりました。(Powered by <a href="http://jws.jalan.net/" target="_blank">じゃらん Web サービス</a>)';

	// page set
		if ( numOfRes > 10){
			for (i=1; i< Math.ceil(numOfRes/10)+1; i++){
				if ( i == (numOfpage/10 +1) ){
					$("setpage").innerHTML += i;
				}else{
					if ( i == 1 && numOfpage == 1 ){
						$("setpage").innerHTML += 1;
					}else{
						pageset = '<a href="javascript: eki_resort(' + i + ')">' + i + '</a>'
						$("setpage").innerHTML += pageset;
					}
				}
			}
		}else{
			$("setpage").innerHTML = "1";
		}

		var hotelData = xmlJalan.getElementsByTagName("Hotel");
		var taregtId = document.getElementById( 'info' );

		for (i=0; i<　disp; i++)		{
			hotelName = hotelData[i].getElementsByTagName("HotelName")[0].childNodes[0].nodeValue;
			hotelX1 = hotelData[i].getElementsByTagName("X")[0].childNodes[0].nodeValue;			hotelY1 = hotelData[i].getElementsByTagName("Y")[0].childNodes[0].nodeValue;
			hoteltype = hotelData[i].getElementsByTagName("HotelType")[0].childNodes[0].nodeValue;			hotelCatch = hotelData[i].getElementsByTagName("HotelCatchCopy")[0].childNodes[0].nodeValue;			hotelURL = hotelData[i].getElementsByTagName("HotelDetailURL")[0].childNodes[0].nodeValue;			rate = hotelData[i].getElementsByTagName("SampleRateFrom")[0].childNodes[0].nodeValue;			numOfRating = hotelData[i].getElementsByTagName("NumberOfRatings")[0].childNodes[0].nodeValue;
			rating = hotelData[i].getElementsByTagName("Rating")[0].childNodes[0].nodeValue;
			hotelCaption = hotelData[i].getElementsByTagName("HotelCaption")[0].childNodes[0].nodeValue;
			hotelImg = hotelData[i].getElementsByTagName("PictureURL")[0].childNodes[0].nodeValue;
	
			var atag = document.createElement('a');

			atag.setAttribute('href', hotelURL);
			atag.setAttribute('onclick', 'return GB_showPage(jatitle,this.href)');

			var imgsrc = document.createElement('img');
			imgsrc.setAttribute('src', hotelImg);
			imgsrc.setAttribute('height', '50');
			imgsrc.setAttribute('width',  '50');

			atag.appendChild( imgsrc );
			taregtId.appendChild( atag );

			var tab1 = '<div id="shoptag"><p>'
			+ '<a style="font-size: 110%;" href="' + hotelURL + '" '			+ 'onclick="return GB_showPage(jatitle,this.href)">'
			+  hotelName + '</a>' + '</p>'			+ '<img src="'+ hotelImg +'" '			+ 'style="float:left; margin:5px 10px 5px;"'			+ '/>' + hotelCatch + '<br/><br/>'			+ '<p style="font-size: 90%;">Powered by <a href="http://jws.jalan.net/" target="_blank">じゃらん Web サービス</a></p>'
 			+ '</div>';

			var tab2 = '<div id="ratetag">'
			+ '<p style="font-size: 125%;">くちこみ件数：' + numOfRating + '</p>'			+ '<p style="font-size: 125%;">評点：' + rating + '</p>'
			+ '<p style="font-size: 90%;">Powered by <a href="http://jws.jalan.net/" target="_blank">じゃらん Web サービス</a></p>';
			+ '</div>'	

			var tl1 = "Hotel情報";
			var tl2 = "Rating";

			ms2glox1 = hotelX1 / 1000 / 3600;
			ms2gloy1 = hotelY1 / 1000 / 3600;

			ekiMap.createMarker(ms2glox1 , ms2gloy1 ,tl1, tab1, tl2, tab2);		}

	}//xmlres end
}
