//<![CDATA[
var map;			//GoogleMapオブジェクト
var geo;			//ジオコーディングオブジェクト
var icon;			//アイコンオブジェクト
var markersNow=[];	//マーカー：表示用
var markersOld=[];	//マーカー：削除用
var eventsOld =[];	//イベント：削除用
var max_list = 10;
var max_row;
var max_page;
var current_page;
var div_gmap = '#gmap';
var div_list = '#resultListActive';
var headerTabNo		= 0;
var headerTabWord	= new Array();
	headerTabWord[0]='店名検索';
	headerTabWord[1]='キーワード検索';
	headerTabWord[2]='Google検索';
	
$( document ).ready(
	function() {
		//□フィッシュアイ
		$('#fisheye').Fisheye( {
				items       : 'a',
				itemsText   : 'span',
				container   : '.fisheyeContainter',
				maxWidth    : 23,
				itemWidth   : 60,
				proximity   : 64,
				halign      : 'center'
			} );
		
		//□キーワードイベント
		$( '#keyword' ).bind( 'click'      , function() {
				var defaultKeyword = headerTabWord[headerTabNo];
				
				if ( $( '#keyword'	).val() == defaultKeyword ) {
					$( '#keyword'	).val( '' );
				}
				$( '#keyword'	).css( 'color' , '#000000'		);
			} );
		$( '#keyword' ).bind( 'mouseout'   , function() {
				if ( $( '#keyword'	).val() == '' ) {
					var defaultKeyword = headerTabWord[headerTabNo];
					
					$( '#keyword'	).val( defaultKeyword			);
					$( '#keyword'	).css( 'color' , '#aaaaaa'		);
				}
			} );
		
		//□キーワードタブ
		$( '#searchStorename'	).bind( 'click'   , function() {
				$( '#searchStorename'	).addClass		( 'active' );
				$( '#searchKeyword'		).removeClass	( 'active' );
				$( '#searchGoogle'		).removeClass	( 'active' );
				headerTabNo = 0;
				$( '#mode'	).val( headerTabNo );
				if ( $( '#keyword'	).val() == headerTabWord[1] || $( '#keyword'	).val() == headerTabWord[2] ) {
					$( '#keyword'	).val( headerTabWord[0] );
				}
				$( '#formKeyword' ).gid().action = '/search.asp';
				$( '#formKeyword' ).gid().method = 'post';
			} );
		$( '#searchKeyword'		).bind( 'click'   , function() {
				$( '#searchStorename'	).removeClass	( 'active' );
				$( '#searchKeyword'		).addClass		( 'active' );
				$( '#searchGoogle'		).removeClass	( 'active' );
				headerTabNo = 1;
				$( '#mode'	).val( headerTabNo );
				if ( $( '#keyword'	).val() == headerTabWord[0] || $( '#keyword'	).val() == headerTabWord[2] ) {
					$( '#keyword'	).val( headerTabWord[1] );
				}
				$( '#formKeyword' ).gid().action = '/search.asp';
				$( '#formKeyword' ).gid().method = 'post';
			} );
		$( '#searchGoogle'		).bind( 'click'   , function() {
				$( '#searchStorename'	).removeClass	( 'active' );
				$( '#searchKeyword'		).removeClass	( 'active' );
				$( '#searchGoogle'		).addClass		( 'active' );
				headerTabNo = 2;
				$( '#mode'	).val( headerTabNo );
				if ( $( '#keyword'	).val() == headerTabWord[0] || $( '#keyword'	).val() == headerTabWord[1] ) {
					$( '#keyword'	).val( headerTabWord[2] );
				}
				$( '#formKeyword' ).gid().action = 'http://www.google.co.jp/search';
				$( '#formKeyword' ).gid().method = 'get';
			} );
			
			
		initialize();
	}
);


//*===============================================================
//○初期化
//*===============================================================
//*  関数：initialize
//*---------------------------------------------------------------
//*  引数：(I/-) なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function initialize() {
	//◆Google Mapsが利用できるブラウザかどうか判断
	if ( GBrowserIsCompatible() ) {
		//◇利用可能
		//□ジオコーディングのインスタンス化
		geo = new GClientGeocoder();
		//□地図のインスタンスを作成
		map = new GMap2( $( div_gmap ).gid() , G_NORMAL_MAP );
		//□移動/縮尺ボタンをつける
		map.addControl( new GLargeMapControl() );
		//□地図/衛星写真 切り替え
		map.addControl( new GMapTypeControl() );
		//□オーバービュー追加
		map.addControl( new GOverviewMapControl() );
		//□初期表示位置を設定
		jumpArea();
		//□ズームイン時にスムーズ
		map.enableContinuousZoom();
		//□ダブルクリック時にズームイン
		map.enableDoubleClickZoom();
		//□マウススクロール時にズームイン・ズームアウト
		//map.enableScrollWheelZoom();
		
		//□初期化
		clearAll();
		//□アイコン作成
		makeIcon();
		//□リストロード
		loadList();
		
		// 中ジャンルチェックボックスをクリックした時のイベント追加
		$( 'input.check_middle_genre' ).click( function() {
			loadList();
			return true;
		});
			
		//□マウスムーブイベントを追加
		GEvent.addListener( map , 'dragend' , function() {
		//GEvent.addListener( map , 'moveend' , function() {
			loadList();
		});
		//□マウスズームイベントを追加
		GEvent.addListener( map , 'zoomend' , function( oldZoom , newZoom ) {
			loadList();
		});
	}
}


//*===============================================================
//○リストを取得
//*===============================================================
//*  関数：loadList
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function loadList() {
	var request = GXmlHttp.create();
	request.open( 'GET', makeRequestString() );
	
	request.onreadystatechange = function() {
		if ( request.readyState == 4 ) {
			var xmlDoc  = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName( 'marker' );
			markersOld  = markersNow;
			markersNow  = new Array();
			
			//□マーカーを作成
			for ( var i = 0; i < markers.length; i++ ) {
				makeMaker( markers[i] );
			}
			
			//□一覧を表示する
			max_row   = markers.length;
			max_page = makeMaxPage(max_row, max_list);
			showList( 0 );
			
			//□旧マーカーの削除
			clearOld();
		}
	}
	request.send(null);
}


function makeMaxPage(max_row, max_list) {
	if ( max_row <= 0 ) {
		return 0;
	}
	var max_page;
	max_page = Math.ceil(max_row / max_list);
	
	return max_page;
}


//*===============================================================
//○リストの表示
//*===============================================================
//*  関数：showList
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function showList( page_number ){
	if (page_number < 0) {
		page_number = 0;
	}
	if (page_number > max_page) {
		page_number = max_page;
	}
	current_page = page_number;
	
	var html = makeList( markersNow );
	$( div_list ).gid().innerHTML = '';
	$( div_list ).gid().innerHTML = html;
	return false;
}


function getHtmlPageNavi(current_page, max_page) {
	var html = '';
	var prev = '';
	var next = '';
	for ( var i = 0; i < max_page; i++ ) {
		if (html != '') {
			html += '-';
		}
		if (current_page == i) {
			html += '<strong>' + (i + 1) + '</strong>';
		} else {
			html += '<a onclick="showList(' + i + ')">' + (i + 1) + '</a>';
		}
	}
	
	prev += '<div id="pageNavi">';
	prev += '<a class="prev"';
	if (current_page != 0) {
		prev += ' onclick="showList(' + (current_page - 1) + ')"';
	}
	prev += '>前</a> [';
	next += '] <a class="next"';
	if (current_page < max_page - 1) {
		next += ' onclick="showList(' + (current_page + 1) + ')"';
	}
	next += '>次</a>';
	next += '</div>';
	return prev + html + next;
}


//*===============================================================
//○リストをクリックし情報ウィンドウを表示
//*===============================================================
//*  関数：clickListInfowindow
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function clickListInfowindow( idx ) {
	markersNow[idx].openInfoWindowHtml( markersNow[idx]['html'] );
}


//*===============================================================
//○初期化
//*===============================================================
//*  関数：clearAll
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function clearAll() {
	map.clearOverlays();
	
	eventCount = eventsOld.length;
	for ( idx=0; idx<eventCount; idx++ ) {
		if ( eventsOld[idx] != '______array' && eventsOld[idx] != '' ) {
			GEvent.removeListener( eventsOld[idx] );
		}
	}
	
	markersNow    = new Array();
	markersOld    = new Array();
	eventsOld     = new Array();
}


//*===============================================================
//○旧情報のクリア
//*===============================================================
//*  関数：clearOld
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function clearOld() {
	for( i in markersOld ) {
		if ( markersOld[i] != '______array' && markersOld[i] != '' ) {
			map.removeOverlay( markersOld[i] );
		}
	}
	markersOld = new Array();
}


//*===============================================================
//○全てをチェック、チェックを外す
//*===============================================================
//*  関数：checkAll
//*---------------------------------------------------------------
//*  引数：(I/-)なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function checkAll( arg_flg ) {
	var category = document.getElementById("category");
	var length = category.childNodes.length;
	var count = 0;
	while (count < length) {
		var li = category.childNodes[count];
		if (li.nodeName == "LI") {
			var input = li.childNodes[0];
			if ( input.nodeName == "INPUT" ) {
				input.checked = arg_flg;
			}
		}
		count++;
	}
	
	loadList();
}


//*===============================================================
//○一覧へ移動
//*===============================================================
//*  関数：jumpList
//*---------------------------------------------------------------
//*  引数：(I/-)arg_mg			中ジャンル
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function jumpList( arg_mg , arg_lg) {
	location.href = './List.asp?mg=' + arg_mg + '&lg=' + arg_lg + '&ar=' + $( '#area' ).val();
}


//*===============================================================
//○別ウインドウを開く
//*===============================================================
function openwin( url ) {
	w = window.open( url , 'win' , 'width=800,status=no,scrollbars=yes,directories=no,menubar=no,resizable=yes,toolbar=no' );
}
//]]>
