var Henro = function(){};

var henroObj = null;

Henro.reqParam     = {};
Henro.wikiReqParam = {};

Henro.prefIdMatch = {
	36 : '徳島',
	37 : '香川',
	38 : '愛媛',
	39 : '高知'
};

Henro.prototype = {
	makeOverlay : function(){
		$('body').append(
			'<div id="overlay">'+
				'<div id="overlay_base"></div>'+
				'<div id="overlay_window">'+
					'<div id="ol_win_close">'+
						'<span id="ol_win_close_btn">閉じる</span>'+
					'</div>'+
					'<div id="ol_win_header">'+
						'<div id="ol_win_header_prev" class="prev_next_tmpl"></div>'+
						'<div id="ol_win_header_name"></div>'+
						'<div id="ol_win_header_next" class="prev_next_tmpl"></div>'+
					'</div>'+
					'<div id="ol_win_body">'+
						'<div id="win_loading">'+
							'<img src="/images/loading_circle_01.gif" alt="" />'+
						'</div>'+
					'</div>'+
				'</div>'+
			'</div>'
		);
	},
	deleteOverlay : function(){
		$('#overlay_base, #ol_win_close_btn').bind('click', function(){
			$('#overlay').remove();
		});
	},
	jsonTempleData : function(){
		Henro.reqParam['callback'] = 'Henro.callBackFuncHenro';
		HenroAPIQry = {
			url		: '/php/api/henro.php',
			params	: Henro.reqParam
		};
		KtUtils.ajxJsonp( HenroAPIQry );
	},
	jsonWikiData : function( tmplId ){
		Henro.wikiReqParam['tmplno']   = tmplId;
		Henro.wikiReqParam['callback'] = 'Henro.callBackFuncWiki';
		WikiAPIQry = {
			url		: '/php/api/wiki.php',
			params	: Henro.wikiReqParam
		};
		KtUtils.ajxJsonp( WikiAPIQry );
		
	},
	makeHeaderText : function( tmplIdName ){
		var tmplPre  = tmplIdName.pre;
		var tmplCurr = tmplIdName.curr;
		var tmplNext = tmplIdName.next;
		
		var tmplPreId  = tmplPre.id;
		var tmplCurrId = tmplCurr.id;
		var tmplNextId = tmplNext.id;
		
		var tmplPreName  = tmplPre.name;
		var tmplCurrName = tmplCurr.name;
		var tmplNextName = tmplNext.name;
		
		$('#ol_win_header_prev').html('<span class="prev_next_tmpl_text">&lt=&nbsp;第' + tmplPreId + '番札所&nbsp;' + tmplPreName + '<input type="hidden" value="' + tmplPreId + '" /></span>');
		
		$('#ol_win_header_next').html('<span class="prev_next_tmpl_text">第' + tmplNextId + '番札所&nbsp;' + tmplNextName + '&nbsp;=&gt;' + '<input type="hidden" value="' + tmplNextId + '" /></span>');
		
		$('#ol_win_header_name').html('第' + tmplCurrId + '番札所&nbsp;' + tmplCurrName);
		
		$('span.prev_next_tmpl_text').click(function(){
			$('#overlay').remove();
			
			var tmplId = $('input:hidden', this).val();
			$('#temple_'+tmplId).click();
		});
	}
};

Henro.callBackFuncHenro = function( json ){
	henroObj.deleteOverlay();
	
	var tmplId     = parseInt( Henro.reqParam['tmplno'] );
	var preTmplId  = tmplId - 1;
	var nextTmplId = tmplId + 1;
	if( preTmplId == 0 ) preTmplId = 88;
	if( nextTmplId == 89 ) nextTmplId = 1;
	
	var jHenro     = json.res_data.henro[tmplId];
	var jHenroPre  = json.res_data.henro[preTmplId];
	var jHenroNext = json.res_data.henro[nextTmplId];
//objectdump(jHenro);
	
	var mapLat    = parseFloat(jHenro.lat) - 0.0032;
	var mapLng    = parseFloat(jHenro.lng) + 0.0027;
	var prefId    = jHenro.pref_id;
	var tmplId    = jHenro.temple_id;
	var tmplName  = jHenro.temple_name;
	var tmplHotel = '';
	
	//henroObj.makeHeaderText( tmplId, tmplName );
	henroObj.makeHeaderText({
		pre  : {
			id   : jHenroPre.temple_id,
			name : jHenroPre.temple_name
		},
		curr : {
			id   : tmplId,
			name : tmplName
		},
		next : {
			id   : jHenroNext.temple_id,
			name : jHenroNext.temple_name
		}
	});
	
	// jHenro.description
	// jHenro.pref_id
	// jHenro.wiki_url
	$('#ol_win_body').html(
		'<div id="block_top">'+
			'<div class="henro_area">'+
				'<div class="temple_id">第'+jHenro.temple_id+'番札所</div>'+
				'<div class="temple_name_block">'+
					'<div class="temple_name_yomi">'+jHenro.temple_name_yomi+'</div>'+
					'<div class="temple_name">'+tmplName+'</div>'+
				'</div>'+
				'<div class="row_2">'+
					'<div class="city_name"><span class="title">住所：</span>'+Henro.prefIdMatch[prefId]+'県'+jHenro.city_name+'</div>'+
					'<div class="honzon"><span class="title">本尊：</span>'+jHenro.honzon+'</div>'+
					'<div class="shuha"><span class="title">宗派：</span>'+jHenro.shuha+'</div>'+
					'<div class="yama_name"><span class="title">山号：</span>'+jHenro.yama_name+'&nbsp;&nbsp;<span class="yama_name_yomi">( '+jHenro.yama_name_yomi+' )</span></div>'+
					'<div class="henro_hotel">「<a href="/php/hotels/jalan/?type=point&x='+mapLng+'&y='+mapLat+'&range=10&pointsize=11&tmpl='+encodeURI(tmplName)+'">'+tmplName+'に近いホテルを探す</a>」</div>'+
				'</div>'+
			'</div>'+
			'<iframe class="h_detail_gmap" src="/php/googlemaps/01.php?latitude='+mapLat+'&longitude='+mapLng+'&width=300&height=300" width="320" height="320" frameborder="0" scrolling="no"></iframe>'+
		'</div>'+
		'<div id="block_wiki">'+
			'<div id="wiki_header">'+
				tmplName+'のウィキペディア情報'+
			'</div>'+
			'<div id="wiki_body">'+
				'<div id="block_wiki_loading">'+
					'<img src="/images/loading_circle_01.gif" alt="" />'+
				'</div>'+
			'</div>'+
		'</div>'
	);
	
	henroObj.jsonWikiData( tmplId );
};

Henro.callBackFuncWiki = function( json ){
	var resJson = json.result;
	
	var wikiDatas = new Array();
	if( typeof resJson != 'undefined' ){
		var resJsonArray = new Array();
		if( typeof $(resJson).get(0) == 'undefined' ){
			resJsonArray.push( resJson );
		} else {
			resJsonArray = resJson;
		}
		$.each(resJsonArray, function(){
			var wikiHtml = '<div class="wiki_row_1">'+
								this.body+
							'</div>'+
							'<div class="wiki_row_2">'+
								'<a href="'+this.url+'" target="_blank">ウィキペディアでさらに詳しく見る</a>'+
							'</div>';
			wikiDatas.push( wikiHtml );
		});
		
	} else {
		var wikiHtml = '<div class="wiki_row_1">該当するデータがありませんでした。</div>';
		wikiDatas.push( wikiHtml );
	}
	
	$('#wiki_body').html(
		wikiDatas.join( '<hr class="wiki_hr" />' )
	);
}

$(function(){
	var henro = new Henro();
	henroObj = henro;
	
	$('div.tmpl_name').click(function(){
		Henro.reqParam['tmplno'] = $('input:hidden', this).val();
		
		henro.makeOverlay();
		henro.jsonTempleData();
	});
	
});
