//<![CDATA[
var map;			//GMap2オブジェクト
var icon;
var obj;			//オブジェクト
var markersNow=[];	//マーカー：表示用
var markersOld=[];	//マーカー：削除用
var eventsOld=[];	//イベント：削除用
var keyword;		//キーワード
var store_flg;		//店舗フラグ
var store_state_id;	//都道府県コード
var idx_start;
var idx_now;
var max_list = 12;
var max_row;
function search_initialize( defalut_f , defalut_s , defalut_k ) {
if ( GBrowserIsCompatible() ) {
map = new GMap2( xgetElementById( 'search_area_gmap' ) , G_NORMAL_MAP );
map.addControl( new GLargeMapControl() , new GControlPosition( G_ANCHOR_TOP_LEFT , new GSize( 6 , 34 ) ) );
//□地図/衛星写真 切り替え
map.addControl( new GMenuMapTypeControl( true , false ) , new GControlPosition( G_ANCHOR_TOP_LEFT , new GSize( 6 , 6  ) ) );
map.addMapType( G_PHYSICAL_MAP );
//map.addControl( new GMapTypeControl() );
search_setcenter( defalut_s );
map.enableContinuousZoom();
map.enableDoubleClickZoom();
search_gicon();
search_clear_all();
store_flg      = defalut_f;
store_state_id = defalut_s;
keyword        = defalut_k;
search_xbrowser();
search_list_load();
} else {
search_clear_all();
}
}
function search_gicon() {
icon = new GIcon();
icon.image = './image/heart2.png';
icon.shadow = './image/shadow50.png';
icon.iconSize = new GSize(20, 18);
icon.shadowSize = new GSize(37, 19);
icon.iconAnchor = new GPoint(10, 18);
icon.infoWindowAnchor = new GPoint(10,19);
}
function search_flg_click( flg ) {
store_flg = flg;
map.closeInfoWindow();
search_list_load();
}
function search() {
keyword = xgetElementById( 'k' ).value;
map.closeInfoWindow();
search_list_load();
}
function search_clear() {
keyword = '';
xgetElementById( 'k' ).value = '';
map.closeInfoWindow();
search_list_load();
}
function flg_click( flg ) {
store_flg = flg;
map.closeInfoWindow();
search_list_load();
}
function state_id_click( id ) {
store_state_id = id;
search_setcenter( id );
map.closeInfoWindow();
search_list_load();
}
function search_setcenter( id ) {
var lat  = '0';
var lng  = '0';
var zoom = 8;
switch ( id ) {
case 34:
lat  = parseFloat('34.449387');
lng  = parseFloat('132.44730');
var zoom = 9;
break;
case 36:
lat  = parseFloat('34.031773');
lng  = parseFloat('134.42557');
var zoom = 10;
break;
case 37:
lat  = parseFloat('34.278616');
lng  = parseFloat('133.96061');
var zoom = 9;
break;
case 38:
lat  = parseFloat('33.787271');
lng  = parseFloat('132.88157');
break;
default:
lat  = parseFloat('34.3');
lng  = parseFloat('133.0');
zoom = 7;
break;
}
map.setCenter( new GLatLng( parseFloat(lat), parseFloat(lng) ) , zoom );
}
function search_list_load() {
var request;
request = GXmlHttp.create();
request.open( 'GET', './server.php?k=' + keyword +'&f=' + store_flg + '&s=' + store_state_id );
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++ ) {search_makeMaker( markers[i] );}
idx_start = 0;
idx_now   = 0;
max_row   = markers.length;
search_showlist( 0 );
search_clear_old();
}
}
request.send(null);
}
function search_makeMaker( xmlmarker ){
var lat    = parseFloat( xmlmarker.getAttribute( 'latitude'  ) );
var lng    = parseFloat( xmlmarker.getAttribute( 'longitude' ) );
var point  = new GLatLng( lat , lng );
var marker = new GMarker( point , icon );
var html = search_makeinfowindow(
xmlmarker.getAttribute( 'id' ),
xmlmarker.getElementsByTagName( 'name'    )[0].firstChild.nodeValue,
xmlmarker.getElementsByTagName( 'address' )[0].firstChild.nodeValue,
xmlmarker.getElementsByTagName( 'tel'     )[0].firstChild.nodeValue,
xmlmarker.getElementsByTagName( 'img'     )[0].firstChild.nodeValue
);
marker['html'] = html;
marker['id']   = xmlmarker.getAttribute( 'id' );
marker['name'] = xmlmarker.getElementsByTagName( 'name' )[0].firstChild.nodeValue;
var eve_click = GEvent.addListener( marker, 'click', function(){;
marker.openInfoWindowHtml( marker['html'] );
});
eventsOld.push( eve_click );
var eve_infowindowopen = GEvent.addListener( marker , 'infowindowopen' , function(){
gIsRemoveMarker = false;
});
eventsOld.push( eve_infowindowopen );
markersNow.push( marker );
map.addOverlay( marker );
}
function search_showlist( arg_flg ){
var html = search_makelist( markersNow , arg_flg );
xgetElementById( 'search_area_makerlist' ).innerHTML = '';
xgetElementById( 'search_area_makerlist' ).innerHTML = html;
}
function search_makelist( markers , arg_flg ){
var html    = '';
var idx     = 0;
var idx_max = 0;
switch ( arg_flg ) {
case 2:
idx       = idx_start;
idx_max   = idx + max_list;
idx_start = idx_start + max_list;
break;
case 1:
idx_start = idx_start - max_list;
idx       = idx_start - max_list;
idx_max   = idx + max_list;
break;
default:
idx       = idx_start;
idx_max   = idx + max_list;
idx_start = idx_start + max_list;
break;
}
if ( idx_max > max_row ) {
idx_max = max_row;
} else if ( idx_max < 0 ) {
idx_max = 0;
}
html += '<table border="0" cellpadding="2" cellspacing="1"><tbody><tr>';
if ( idx > 0 ) {
html += '<td align="left" style="width:70px; text-align:center; cursor:pointer;" onclick="search_showlist(1);"><span class="f13px_blue store_list"><strong><<前へ</strong></span></td>';
} else {
html += '<td align="left" style="width:70px; text-align:center;"></td>';	
}
if ( idx_max < max_row ) {
html += '<td align="left" style="width:70px; text-align:center; cursor:pointer;" onclick="search_showlist(2);"><span class="f13px_blue store_list"><strong>次へ>></strong></span></td>';
} else {
html += '<td align="left" style="width:70px; text-align:center;"></td>';
}
html += '</tr></tbody></table>';

html += '<table border="0" cellpadding="2" cellspacing="1"><tbody>';
for ( var i = idx; i < idx_max; i++ ) {
html += '<tr id="list_' + markers[i]['id'] + '" onmouseover="this.bgColor=\'#F0F0F0\'" onmouseout="this.bgColor=\'#FFFFFF\'" align="left" bgcolor="#FFFFFF" onclick="clicklist_infowindow(' + i + ');" style="cursor:pointer;"><td>';
html += '<span class="f13px_blue store_list"><strong>' + markers[i]['name'] + '</strong></span> <span class="f11px_blue"><a href="./store.php?id=' + markers[i]['id'] + '&amp;f=' + store_flg + '&amp;s=' +  store_state_id + '&amp;k=' + keyword + '">詳細»</a></span></td></tr>';
}
html += '</tbody></table>';
return html;
}

function clicklist_infowindow( idx ) {
markersNow[idx].openInfoWindowHtml( markersNow[idx]['html'] );
map.setZoom(15);
}
function search_makeinfowindow(id,name,address,tel,img) {
var html= '';
html += '<div id="infowindow"><table width="245" height="140" border="0" cellpadding="0" cellspacing="0" summary=""><tr><td colspan="3"><span class="f16px">' + name + '</span></td></tr>';
html += '<tr valign="top"><td width="125"><a href="./store.php?id=' + id + '&amp;f=' + store_flg + '&amp;s=' +  store_state_id + '&amp;k=' + keyword + '" target="_self"><span class="f12px_blue">詳細»</span></a><br /><span class="thumbnail_title">住所：</span><br />';
html += address + '<br />' + '<span class="thumbnail_title">TEL：</span><br />' + tel + '</td>';
html += '<td width="120"><a href="./store.php?id=' + id + '&amp;f=' + store_flg + '&amp;s=' +  store_state_id + '&amp;k=' + keyword + '" target="_self"><img src="' + img + '" alt="" border="0" width="120" height="90"></a></td></tr></table></div>';
return html;
}
function search_clear_all() {
map.clearOverlays();
for( i in eventsOld ) {if ( eventsOld[i] != '______array' && eventsOld[i] != '' ) {GEvent.removeListener( eventsOld[i] );}}
markersNow    = new Array();
markersOld    = new Array();
eventsOld     = new Array();
keyword        = '';
store_flg	   = '';
store_state_id = '';
}
function search_clear_old() {
for( i in markersOld ) {if ( markersOld[i] != '______array' && markersOld[i] != '' ) {map.removeOverlay( markersOld[i] );}}
markersOld = new Array();
}
function search_mouseWheel( event ) {
if ( xis.xgecko ) {var delta = event.detail;event.preventDefault();map.setZoom( map.getZoom() + ( delta < 0 ? 1 : -1 ) );}
else if ( xis.xmsie ) {var delta = event.wheelDelta * -1;event.returnValue = false;map.setZoom( map.getZoom() + ( delta < 0 ? 1 : -1 ) );}
else if ( xis.xopera ) {var delta = event.wheelDelta;event.returnValue = false;map.setZoom( map.getZoom() + ( delta < 0 ? 1 : -1 ) );}
}
function search_xbrowser() {
if ( xis.xgecko ) {var area_gmap = xgetElementById( 'search_area_gmap' );area_gmap.addEventListener( 'DOMMouseScroll' , search_mouseWheel , false );}
else if ( xis.xmsie ) {var area_gmap = xgetElementById( 'search_area_gmap' );area_gmap.attachEvent( 'onmousewheel' , search_mouseWheel );}
else if ( xis.xopera ) {var area_gmap = xgetElementById( 'search_area_gmap' );area_gmap.attachEvent( 'onmousewheel' , search_mouseWheel );}
}
//]]>