function loading( id )
{
	$(id).innerHTML = '<img src="' + g_url + 'img/loading.gif" />';
}


function loadingSmall( id )
{
	$(id).innerHTML = '<img src="' + g_url + 'img/indicator.gif" />';
}


function LocalSearch( id, keyword, page )
{
	loading( 'search_result' );
	var myajax = new Ajax.Updater(
						'search_result',
						g_url + 'local/search/' + encodeURIComponent( keyword ) + '/' + page,
						{
							method: 'post',
							parameters: 'time=' + (new Date()).getTime()
						});
}


function SpaSearch( id, l_area, s_area, page )
{
	loading( id );
	var myajax = new Ajax.Updater(
						id,
						g_url + 'travels/search_spa',
						{
							method: 'post',
							parameters: 'l_area=' + l_area + '&s_area=' + s_area + '&page=' + page + 'time=' + (new Date()).getTime()
						});
}


function HotelSearch( id, l_area, s_area, o_id, o_area_id, page )
{
	loading( id );
	var params	= 'l_area=' + l_area + '&s_area=' + s_area + '&o_id=' + o_id + '&o_area_id=' + o_area_id + '&page=' + page + 'time=' + (new Date()).getTime();
	var options	= $('hotel_search_option_area');
	for( var i = 0; i < options.childNodes.length; i++ )
	{
		var nodeid = String( options.childNodes[i].id );
		if( nodeid == 'hs_option_order' || nodeid == 'hs_option_h_type' )
		{
			var id_length = nodeid.length;
			params += '&' + nodeid.substring( 10, id_length ) + '=' + $(nodeid).value;
		}
		else
		{
			if( nodeid.substring( 0, 9 ) == 'hs_option' )
			{
				if( $(nodeid).checked )
				{
					var id_length = nodeid.length;
					params += '&' + nodeid.substring( 10, id_length ) + '=1';
				}
			}
		}
	}
	var myajax	= new Ajax.Request(
						g_url + 'travels/search_hotel',
						{
							method: 'post',
							parameters: params,
							onComplete: function( request ){
								if( request.responseText )
								{
									$(id).innerHTML = request.responseText;
								}
								else
								{
									alert( '見つかりませんでした' );
								}
							}
						});
}


function HotelAdd( hotelId )
{
	var id		= 'hotel' + hotelId;
	var hotel	= $(id).innerHTML;
	var myajax	= new Ajax.Request(
						g_url + 'hotels/add',
						{
							method: 'post',
							parameters: 'hotel=' + hotel + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('hotelMemoAdd' + hotelId).className	= 'elem_hide';
								$('hotelMemoDel' + hotelId).className	= 'elem_on';
								HotelMemoList();
							}
						});
}


function HotelDel( hotelId )
{
	var myajax	= new Ajax.Request(
						g_url + 'hotels/delete',
						{
							method: 'post',
							parameters: 'hotel_id=' + hotelId + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('hotelMemoAdd' + hotelId).className	= 'elem_off';
								$('hotelMemoDel' + hotelId).className	= 'elem_hide';
								HotelMemoList();
							}
						});
}


function HotelMemoList()
{
	var myajax	= new Ajax.Updater(
						'hotel_list',
						g_url + 'hotels/memo',
						{
							method: 'post',
							parameters: 'time=' + (new Date()).getTime()
						});
}


function OnsenAdd( onsenId )
{
	var id		= 'onsen' + onsenId;
	var onsen	= $(id).innerHTML;
	var myajax	= new Ajax.Request(
						g_url + 'onsens/add',
						{
							method: 'post',
							parameters: 'onsen=' + onsen + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('onsenMemoAdd' + onsenId).className	= 'elem_hide';
								$('onsenMemoDel' + onsenId).className	= 'elem_on';
								OnsenMemoList();
							}
						});
}


function OnsenDel( onsenId )
{
	var myajax	= new Ajax.Request(
						g_url + 'onsens/delete',
						{
							method: 'post',
							parameters: 'onsen_id=' + onsenId + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('onsenMemoAdd' + onsenId).className	= 'elem_off';
								$('onsenMemoDel' + onsenId).className	= 'elem_hide';
								OnsenMemoList();
							}
						});
}


function OnsenMemoList()
{
	var myajax	= new Ajax.Updater(
						'onsen_list',
						g_url + 'onsens/memo',
						{
							method: 'post',
							parameters: 'time=' + (new Date()).getTime()
						});
}


function PhotozouSlideshow( photos )
{
	g_SlideshowImgLeft		= new Array();
	var parent = $('photos_inner');
	var tag = '';
	for( var i = 0; i < g_SlideshowImgMax && i < photos.length; i++ )
	{
		g_SlideshowImgLeft[i+1]	= 10 + 190 * i;
		tag	+= '<a href="'
			+ photos[i].Photo.url
			+ '" id="photolink' + ( i + 1 )
			+ '" target="_blank"><img src="'
			+ photos[i].Photo.image_url
			+ '" width="175" height="140" id="photo' + ( i + 1 )
			+ '" class="photos_item" style="left: '
			+ ( g_SlideshowImgLeft[i+1] + parent.offsetLeft )
			+ 'px;  top: 10px;" /></a>';
	}
	$('photos').innerHTML = tag;
	g_SlideshowNumber		= photos.length;
	g_SlideshowPhotos		= photos;
	PhotozouSlideshowProc();
}


function PhotozouSlideshowProc()
{
	for( var i = 1; i <= g_SlideshowImgMax && i <= g_SlideshowPhotos.length; i++ )
	{
		var id		= 'photo' + i;
		var linkid	= 'photolink' + i;
		var img		= $(id);
		var lnk		= $(linkid);
		g_SlideshowImgLeft[i] -= g_slideshowSpeed;
		img.style.left = g_SlideshowImgLeft[i] + 'px';
		if( g_SlideshowImgLeft[i] < -175 )
		{
			g_SlideshowImgLeft[i]	+= 190 * g_SlideshowImgMax;
			img.style.left			= g_SlideshowImgLeft[i];
			g_SlideshowNumber++;
			if( g_SlideshowNumber >= g_SlideshowPhotos.length )
			{
				g_SlideshowNumber = 0;
			}
			img.src		= g_SlideshowPhotos[g_SlideshowNumber].Photo.image_url;
			lnk.href	= g_SlideshowPhotos[g_SlideshowNumber].Photo.url;
		}
	}
	setTimeout( 'PhotozouSlideshowProc()', 26 );
}


function HotpepperSearch( keyword, page )
{
	loading( 'results' );
	var pos		= MapGetCenter();
	var lat		= pos.lat();
	var lng		= pos.lng();
	var params	= 'keyword=' + encodeURIComponent( keyword ) + '&latitude=' + lat + '&longitude=' + lng + '&page=' + page + '&time=' + (new Date()).getTime();
	var options	= $('hotel_search_option_area');
	for( var i = 0; i < options.childNodes.length; i++ )
	{
		var nodeid = String( options.childNodes[i].id );
		if( nodeid == 'hs_option_Order' ||
			nodeid == 'hs_option_KtaiCoupon' ||
			nodeid == 'hs_option_BudgetCD' ||
			nodeid == 'hs_option_GenreCD' ||
			nodeid == 'hs_option_FoodCD' )
		{
			var id_length = nodeid.length;
			params += '&' + nodeid.substring( 10, id_length ) + '=' + $(nodeid).value;
		}
		else
		{
			if( nodeid.substring( 0, 9 ) == 'hs_option' )
			{
				if( $(nodeid).checked )
				{
					var id_length = nodeid.length;
					params += '&' + nodeid.substring( 10, id_length ) + '=1';
				}
			}
		}
	}
	var myajax	= new Ajax.Updater(
					'results',
					g_url + 'shops/search',
					{
						method : 'post',
						parameters : params,
						onComplete : function( result ) {
							if( result.responseText )
							{
								eval( 'var searchResult = ' + result.responseText + ';' );
								$('results').innerHTML = searchResult.contents;
								HotpepperToMarker( searchResult.Shop );
							}
						}
					}
				);
}


function HotpepperToMarker( shops )
{
	MapClearOverlays();
	var len = shops.length;
	for( var i = 0; i < len; i++ )
	{
		var shop = shops[i];
		MapAddOverlay( shop.Latitude, shop.Longitude, shop.tag );
	}
}


function ShopAdd( shopId )
{
	var id		= 'shop' + shopId;
	var shop	= $(id).innerHTML;
	var myajax	= new Ajax.Request(
						g_url + 'shops/add',
						{
							method: 'post',
							parameters: 'shop=' + shop + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('shopMemoAdd' + shopId).className	= 'elem_hide';
								$('shopMemoDel' + shopId).className	= 'elem_on';
								ShopMemoList();
							}
						});
}


function ShopDel( shopId )
{
	var myajax	= new Ajax.Request(
						g_url + 'shops/delete',
						{
							method: 'post',
							parameters: 'shop_id=' + shopId + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('shopMemoAdd' + shopId).className	= 'elem_off';
								$('shopMemoDel' + shopId).className	= 'elem_hide';
								ShopMemoList();
							}
						});
}


function ShopMemoList()
{
	var myajax	= new Ajax.Updater(
						'shop_list',
						g_url + 'shops/memo',
						{
							method: 'post',
							parameters: 'time=' + (new Date()).getTime()
						});
}


function SpotSearch( keyword, page )
{
	loading( 'results' );
	var pos		= MapGetCenter();
	var lat		= pos.lat();
	var lng		= pos.lng();
	var params	= 'keyword=' + encodeURIComponent( keyword ) + '&latitude=' + lat + '&longitude=' + lng + '&page=' + page + '&time=' + (new Date()).getTime();
	var options	= $('spot_search_option_area');
	for( var i = 0; i < options.childNodes.length; i++ )
	{
		var nodeid = String( options.childNodes[i].id );
		if( nodeid == 'ss_option_order' ||
			nodeid == 'ss_option_prefecture' ||
			nodeid == 'ss_option_category' )
		{
			var id_length = nodeid.length;
			params += '&' + nodeid.substring( 10, id_length ) + '=' + $(nodeid).value;
		}
		/*
		else
		{
			if( nodeid.substring( 0, 9 ) == 'hs_option' )
			{
				if( $(nodeid).checked )
				{
					var id_length = nodeid.length;
					params += '&' + nodeid.substring( 10, id_length ) + '=1';
				}
			}
		}
		*/
	}
	var myajax	= new Ajax.Updater(
					'results',
					g_url + 'spots/ajaxsearch',
					{
						method : 'post',
						parameters : params,
						onComplete : function( result ) {
							if( result.responseText )
							{
								eval( 'var searchResult = ' + result.responseText + ';' );
								$('results').innerHTML = searchResult.contents;
								SpotToMarker( searchResult.Spot );
							}
						}
					}
				);
}


function SpotToMarker( spots )
{
	MapClearOverlays();
	var len = spots.length;
	for( var i = 0; i < len; i++ )
	{
		var spot = spots[i];
		MapAddOverlay( spot.Spot.latitude, spot.Spot.longitude, spot.tag );
	}
}


function SpotAdd( spotId )
{
	var myajax	= new Ajax.Request(
						g_url + 'spots/memoadd',
						{
							method: 'post',
							parameters: 'spot_id=' + spotId + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('spotMemoAdd' + spotId).className	= 'elem_hide';
								$('spotMemoDel' + spotId).className	= 'elem_on';
								SpotMemoList();
							}
						});
}


function SpotDel( spotId )
{
	var myajax	= new Ajax.Request(
						g_url + 'spots/memodelete',
						{
							method: 'post',
							parameters: 'spot_id=' + spotId + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('spotMemoAdd' + spotId).className	= 'elem_off';
								$('spotMemoDel' + spotId).className	= 'elem_hide';
								SpotMemoList();
							}
						});
}


function SpotMemoList()
{
	var myajax	= new Ajax.Updater(
						'spot_list',
						g_url + 'spots/memo',
						{
							method: 'post',
							parameters: 'time=' + (new Date()).getTime()
						});
}


function rate( url, target_kind, target_id, rate )
{
	var myajax = new Ajax.Updater(
						'rate_area',
						g_url + url,
						{
							method: 'post',
							parameters: 'target_kind=' + target_kind + '&target_id=' + target_id + '&rate=' + rate + '&time=' + (new Date()).getTime()
						});
}


function StationSearch( keyword, target_id, id )
{
	if( !keyword )	return;
	loadingSmall( target_id );
	keyword		= encodeURIComponent( keyword );
	var myajax	= new Ajax.Updater(
						target_id,
						g_url + 'rails/station',
						{
							method: 'post',
							parameters: 'keyword=' + keyword + '&id=' + id + '&time=' + (new Date()).getTime(),
							onComplete: function( request ){
								if( $('station_start_keyword').value && $('station_end_keyword').value )
								{
									$('station_search_do').show();
								}
							}
						});
}


function StationCourseSearch( kind, page )
{
	loading( 'results' );
	var start	= $('station_start' + $('station_start').value).innerHTML;
	var end		= $('station_end' + $('station_end').value).innerHTML;
	var myajax	= new Ajax.Request(
						g_url + 'rails/search',
						{
							method: 'post',
							parameters: 'kind=' + kind + '&start=' + start + '&end=' + end + '&page=' + page + '&time=' + (new Date()).getTime(),
							onComplete: function( request ){
								if( request.responseText )
								{
									eval( 'var result = ' + request.responseText + ';' );
									$('results').innerHTML = result.contents;
								}
							}
						});
}


function RailAdd( railId, kind )
{
	var id		= 'rail' + railId;
	var shop	= $(id).innerHTML;
	var myajax	= new Ajax.Updater(
						'testresult',
						g_url + 'rails/add',
						{
							method: 'post',
							parameters: 'rail=' + shop + '&kind=' + kind + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('railMemoAdd' + railId).className	= 'elem_hide';
								$('railMemoDel' + railId).className	= 'elem_on';
								RailMemoList( kind );
							}
						});
}


function RailDel( railId, kind )
{
	var myajax	= new Ajax.Updater(
						'testresult',
						g_url + 'rails/delete',
						{
							method: 'post',
							parameters: 'rail_id=' + railId + '&kind=' + kind + '&time=' + (new Date()).getTime(),
							onComplete: function( result ){
								$('railMemoAdd' + railId).className	= 'elem_off';
								$('railMemoDel' + railId).className	= 'elem_hide';
								RailMemoList( kind );
							}
						});
}


function RailMemoList( kind )
{
	var myajax	= new Ajax.Updater(
						'rail_list',
						g_url + 'rails/memo',
						{
							method: 'post',
							parameters: 'kind=' + kind + '&time=' + (new Date()).getTime()
						});
}